Tag: restkit

无法在RestKit中映射NSManagedObject的对象数组

我有NSManagedObject子类的User类: @interface User : NSManagedObject @property (nonatomic, retain) NSString * about; @property (nonatomic, retain) NSString * contactAddress; @property (nonatomic, retain) NSString * contactEmail; @property (nonatomic, retain) NSString * hobbies; @property (nonatomic, retain) NSArray* jobExperience; @property (nonatomic, retain) NSString * name; @property (nonatomic, retain) NSString * surname; @end 正如你所看到的,这个对象具有JobExperience对象的NSArray属性。 JobExperience定义如下: @interface JobExperience : NSObject <NSCoding> @property […]

连续第五次RestKit呼叫未被发送

我通过RestKit发送一个objectManager postObject调用。 在4次尝试返回403之后,我的第5次尝试没有被拾起并由RestKit发送出去。 我已经使用Charlesvalidation了这一点,观察我的实际stream量,并通过查看RestKit日志,RestKit获取我的请求并将其放入RequestQueue中,但是它永远不会被取消。 我的前4个请求看起来像这样在RestKit日志(对日志墙的道歉): D restkit:RKObjectManager.m:171 CacheTimeoutSet: 60.000000 – 60.000000 T restkit.network.queue:RKRequestQueue.m:226 Request <RKObjectLoader: 0x784ac90> added to queue <RKRequestQueue: 0x6501530> T restkit.network.queue:RKRequestQueue.m:173 Processing request <RKObjectLoader: 0x784ac90> in queue <RKRequestQueue: 0x6501530> T restkit.network.queue:RKRequestQueue.m:104 Loading count increasing from 0 to 1. Firing requestQueueDidBeginLoading T restkit.network.queue:RKRequestQueue.m:131 Loading count set to 1 for queue <RKRequestQueue: 0x6501530> T restkit.network.cache:RKRequestCache.m:106 […]

获取Restkit教程代码工作

我在iOS上开发相对较新,并试图熟悉RestKit,所以如果我错过了一些明显的东西,请耐心等待。 我们正在开发一个iOS 5应用程序,它将接收JSON并将其映射到对象(如果重要,则启用ARC)。 为了寻找Restkit的教程,我遇到了这个 。 但是,示例代码的简化版本(“RKClient实际示例”一节中的示例代码)失败,并显示以下错误: 2012-01-14 22:15:55.124 Test_StaticLibInApp[789:707] *** Assertion failure in -[RKRequestQueue removeRequest:decrementCounter:], /Users/m/Documents/devel/ios/RestKit/Code/Network/RKRequestQueue.m:350 2012-01-14 22:15:55.129 Test_StaticLibInApp[789:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempted to decrement loading count below zero' 确切地说,这是我尝试过的代码: – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. RKClient […]

有没有一种方法可以为restkit提供虚拟input?

我对Restkit很新颖。 我知道我的宁静回应是怎样的。 它尚未准备好从服务器端获得。 有没有办法直接给虚拟inputrestkit? 我们可以把json文本文件作为NSUrlConnection的input,同样如何在这里做呢?

RestKit比较本地对象和远程对象之前映射或实际插入到CoreData DB

所以我开始在RestKit中实现我的第二个项目,前一个很简单,只是从远程服务中提取东西,并填入我的核心数据库。 在当前的应用程序中,我正在开发一个同步function,所以我想在做一个插入之前validation东西,即比较本地存储中的一个对象与从远程服务获得的对象。 我正在读这个线程 ,发现我可以做到这样的事情。 所以我将这两种方法添加到我的模型中。 我知道只有一个方法就足够了,但问题是两个function。 @implementation News @dynamic title; @dynamic desc; @dynamic time; @dynamic category; @dynamic content; – (BOOL)validateValue:(inout __autoreleasing id *)ioValue forKeyPath:(NSString *)inKeyPath error:(out NSError *__autoreleasing *)outError{ return NO; } – (BOOL)validateTitle:(id *)ioValue error:(NSError **)outError{ return NO; } 实体映射代码, RKEntityMapping *userMapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass(theClass) inManagedObjectStore:objectManager.managedObjectStore]; userMapping.performsKeyValueValidation = YES; userMapping.discardsInvalidObjectsOnInsert = YES; 所以我认为这个方法是每当一个对象被映射或被覆盖时触发的。 所以自我将包含当前的对象和* […]

RestKit 0.10.1:如何创build一个NSManagedObject子类的新实例?

我需要创build一个NSManagedObject子类的新实例,然后我打算使用POST – (void)postObject:(id<NSObject>)object usingBlock:(RKObjectLoaderBlock)block 我如何创build对象? 我使用这种方法吗? + (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context; 如果我应该使用insertNewObjectForEntityName ,我该如何获取context ?

以“/”作为参数的RKRoute不起作用

我试图设置RKRoute从Dropbox API使用RestKit获取文件夹内容。 获取内容的URL是https://api.dropbox.com/1/metadata/dropbox/<path> 。 所以我设置了这样的响应和路由: // objectManagers baseURL is @"https://api.dropbox.com/1/" RKResponseDescriptor *rootResponse = [RKResponseDescriptor responseDescriptorWithMapping:dynamicMapping pathPattern:@"metadata/dropbox:path" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; [objectManager.router.routeSet addRoute:[RKRoute routeWithClass:[DropboxFolder class] pathPattern:@"metadata/dropbox:path" method:RKRequestMethodGET]]; // dropboxFolder.path is @"/" for root // dropboxFolder.path is @"/Images" for the "Images"-folder contained in root 但是,然后匹配的path失败[RKPathMather matchesPath:tokenizeQueryStrings:parsedArguments:因为那里检查斜杠的数量是这样的: RKNumberOfSlashesInString(self.patternString) == RKNumberOfSlashesInString(self.rootPath) 映射的工作,当我注释这个检查,但我相信这是在其他一些情况下需要。

rest套件坚持/性能问题与多重MOCs

这是我第一次使用RestKit和多个MOC的新版本,所以这让我有点难住。 我使用RestKit 0.20-pre5,并通过RestKit操作添加托pipe对象以及在整个应用程序中手动添加。 RestKits提供两个MOC来pipe理性能:mainQueue和PersistantStore对象上下文。 从检查RestKits代码中,所有新的被pipe理对象被保存到mainQueue MOC(基于RKObjectManager行433和各种指针地址的检查)。 由RestKit创build的对象得到保持良好(当然在调用保存之后),但是每当我在同一个mainQueue MOC中创build自己的ManagedObjects并保存它时,它们在我重新启动应用程序时不会保留。 (我经常保存有关的MOC) 这就是持久存储的地方。每当我保存持久存储与mainQueue MOC一起时,数据将持续存在。 我想这与RKManagedObjectStore合并更改有关,只要我调用保存在persistantStoreMOC(通过通知)所以…一切都很好? 问题是每当我保存两个上下文都有一个明显的滞后,至less持续1秒(它可以变化到3!)。 这种滞后似乎增加了我创build的NSManagedObjects。 我已经运行仪器,没有内存问题。 我必须错误地使用RestKits核心数据的实现。 对于我使用以下方法保存的logging: – (void)saveContext { __block BOOL _blockSuccess; __block NSError *_blockError; NSManagedObjectContext *persistantContext = [[[RKObjectManager sharedManager] managedObjectStore] persistentStoreManagedObjectContext]; [globalManagedObjectContext performBlockAndWait:^{ _blockSuccess = [globalManagedObjectContext save:&_blockError]; }]; if (! _blockSuccess) NSLog(@"Failed to save context: %@", _blockError); [persistantContext performBlock:^{ _blockSuccess = [persistantContext save:&_blockError]; […]

RestKit多个RKObjectManagers对象映射

我使用两个RKObjectManagers,一个没有RKManagedObjectStore(这是共享实例),另一个是。 当我尝试像这样设置RKManagedObjectStore时: [self.storeBackedObjectManager setObjectStore:[RKManagedObjectStore objectStoreWithStoreFilename:@"conversations.sqlite"]]; 我得到以下错误: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '[RKObjectManager sharedManager].objectStore cannot be nil' 看起来RestKit试图访问NSManagedObject+ActiveRecord.m中的sharedManager(不使用对象存储)的对象存储: + (NSManagedObjectContext*)managedObjectContext { NSAssert([RKObjectManager sharedManager], @"[RKObjectManager sharedManager] cannot be nil"); NSAssert([RKObjectManager sharedManager].objectStore, @"[RKObjectManager sharedManager].objectStore cannot be nil"); return [[[RKObjectManager sharedManager] objectStore] managedObjectContext]; } 有没有办法将一个引用传递给我的第二个存储支持的RKObjectManager实例? (如果我暂时将共享pipe理器设置为存储支持的实例,则此映射工作正常)

在RestKit中序列化嵌套图像(Rails后端)

这是我得到的: food_name_token Pizza id 1 category_id 1 review {"note"=>"tasty!", "image"=>"<RKParamsAttachment: 0x7834500>"} 这就是我所期望的: food_name_token Pizza id 1 category_id 1 review {"note"=>"tasty!", "image"=>{"filename"=>"image", "type"=>"image/png", "name"=>"image", "tempfile"=>"#", "head"=>"Content-Disposition: form-data; name=\"image\"; filename=\"image\"\r\nContent-Type: image/png\r\n"}} 我正在使用Restkit,我试图序列化Iphone上的数据,并将其发送到我的Rails后端。 大多数情况下,它的工作,但我似乎无法让我的多部分图像序列化。 该图片属于“评论”类,而该类又被嵌套在“Dish”类中。 这是我到目前为止: // Set up routes RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:@"http://postbin.org"]; [manager.router routeClass:[Dish class] toResourcePath:@"/5a850fe1" forMethod:RKRequestMethodPOST]; [manager.router routeClass:[Review class] toResourcePath:@"/5a850fe1" forMethod:RKRequestMethodPOST]; // Map Dish […]