Tag: restkit

RestKit:映射复杂嵌套的问题,需要forceCollectionMapping的多个级别

我试图用RestKit来映射一些JSON数据,到目前为止还是无法做到这一点。 这些数据是一组等级date和注册。 它看起来像下面(不可能改变它): { "days": { "2012-10-29": { "2106303": { "activityCode": "LU", "approved": false, "hours": 0.5, "description": "some description", }, "2106304": { "activityCode": "VF", "approved": false, "hours": 7.5, "description": "some other description", } }, "2012-10-30": null, } } 我的代码如下所示: – (void)setupWeekMappingForManager:(RKObjectManager *)manager { RKObjectMapping *registrationMapping = [RKObjectMapping mappingForClass:[Registration class]]; registrationMapping.forceCollectionMapping = YES; [registrationMapping mapKeyOfNestedDictionaryToAttribute:@"registrationNumber"]; RKObjectMapping […]

Restkit – 通过外键的核心数据一对一关系映射

我已经花了几个小时,尝试了解决这个问题的一些不同的解决scheme,通过查看类似的问题已经解决了StackOverFlow线程。 但是,我撞到了一堵砖墙。 一些背景。 使用Restkit 0.22和核心数据来坚持2个对象,并build立它们之间的关系。 我正在build模的两个对象如下所示,关系也包含在COAgendaItem和COMapItemLocation(目前不工作的关系)之间的One-One关系的forms以及COMapItemLocation和COAgendaItem(I还没有看过这个映射呢): – COAgendaItem – COMapItemLocation 他们有相应的属性和关系 期望的结果是使核心数据关系与RestKit一起工作,即通过COAgendaItem对象上的代码可以访问属性agendaItemLocation。 来自服务器的JSON响应看起来像这样 上面的JSON响应是COAgendaItem对象所需的数据加上COMapItemLocation对象的主键。 我有一个映射的COMAPItemLocation的主键location_id字段的问题。 (我有响应描述符和检索代码设置,它工作正常,它只是成为一个问题,因为我试图映射关系) 到目前为止,我已经修改了我的RKEntityMapping以尝试映射关系。 + (RKMapping *)agendaItemMapping{ RKEntityMapping *agendaItemMapping = [RKEntityMapping mappingForEntityForName:@"COAgendaItem" inManagedObjectStore:[[COPersistenceCoordinator sharedCOPersistenceCoordinator]restKitObjectStore]]; [agendaItemMapping addAttributeMappingsFromDictionary:@{@"id": @"agendaItemID",@"title": @"agendaItemTitle",@"description": @"agendaItemDescription",@"start": @"agendaItemStartTime",@"end": @"agendaItemEndTime",@"category": @"agendaItemCategory",@"location_id" : @"agendaItemLocation"}]; [agendaItemMapping addConnectionForRelationship:@"agendaItemLocation" connectedBy:@"location_id"]; return agendaItemMapping; } 然而,这会导致启动时发生崩溃,如下所示(注意,我已经在默认映射中为外键添加@“location_id”:@“agendaItemLocation”映射,这是否必要) 我试着修改[agendaItemMapping addConnectionForRelationship:@"agendaItemLocation" connectedBy:@"location_id"]; 声明与所有的组合,我可以想到在单一的string和字典格式,即@ {“agendaItemLocation”:@“location_id”}但无论我尝试,它总是以前一样的错误'无法连接关系:无效的属性给定源实体“COAgendaItem”:location_id。 我完全沉迷于这一个,任何人都可以指出我做错了什么或需要做不同的事情吗? 提前感谢任何帮助! 🙂

RestKit:JSON映射不起作用

如果我有像这样的JSON响应,映射应该如何呢? { "persons":{ "@size":"4", "person":[ { "name":"John", "type":"Doe 1", "options":"some options" }, { "name":"John", "type":"Doe 2", "options":"some other options" }, { "name":"John", "type":"Doe 3", }, { "name":"John", "type":"Doe 4", } ] } } 我已经尝试了以下映射,但它不起作用: RKManagedObjectMapping* personMapping = [RKManagedObjectMapping mappingForClass:[CDCustomFieldDefinition class]]; [personMapping mapKeyPath:@"label" toAttribute:@"label"]; [personMapping mapKeyPath:@"type" toAttribute:@"type"]; [personMapping mapKeyPath:@"options" toAttribute:@"options"]; personMapping.primaryKeyAttribute = @"label"; [[RKObjectManager sharedManager].mappingProvider setMapping:personMapping […]

收到对象restkit v0.20.3后主线程被阻塞

一旦我从服务器获取数据,它将使用Entity mapping保存在持久性存储中。 然后我manually delete这些对象。 现在,当我试图再次拉相同的数据时,我得到的错误说,映射HTTP响应无目标对象… RKObjectmapperoperation失败。 主线程被阻塞的可能是其中的pipe理上下文在删除后没有对象图。 我不知道如何解决这个错误,我试图重置持久性存储。 UPDATE – (void)saveThreadedContext { NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; [defaultCenter addObserver:self selector:@selector(mergeThreadedContextChangesIntoMainContext:) name:NSManagedObjectContextDidSaveNotification object:self.threadedContext]; if ([[self threadedContext] hasChanges]) { NSError *error; BOOL contextDidSave = [[self threadedContext] save:&error]; if (!contextDidSave) { // If the context failed to save, log out as many details as possible. NSLog(@"Failed to save […]

我如何设置RKObjectManager的委托为零?

我想将RKObjectManager的委托设置为零。 但是我找不到委托属性。 我的要求是: [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"getData" objectMapping:[[RKObjectManager sharedManager].mappingProvider objectMappingForKeyPath:@"clips"] delegate:self]; 更新:我的应用程序有一个崩溃。 我去“剪辑”,并在viewDidLoad发送loadObjectsAtResourcePath。 如果我快速离开这个屏幕,我会在[RKResponse连接:didReceiveData:]崩溃。

如何在使用RestKit和RKObjectManager时添加一些默认参数?

我正在使用RestKit,RKObjectManager和服务器端devise进行身份validation。 我需要发送我的身份validation令牌每个请求。 有没有一种方法可以轻松地为所有请求添加它? 目前,对于GET,我正在做以下工作: NSString *path = [NSString stringWithFormat:@"/%@/%i", [self pluralizedName], identifier]; path = [path stringByAppendingQueryParameters:[self appendAuthenticationToken:params]]; [[RKObjectManager sharedManager] loadObjectsAtResourcePath:path delegate:delegate]; 这很好。 但是,对于PUT,我尝试了以下方法: [[RKObjectManager sharedManager] putObject:resource usingBlock:^(RKObjectLoader *loader) { loader.delegate = delegate; loader.params = [RKParams paramsWithDictionary:[self appendAuthenticationToken:params]]; }]; 这正确地发送了我的身份validation令牌,但服务器没有收到我正在尝试更新的资源。 有谁知道这样做的正确方法?

iPhone应用程序存档 – 没有这样的文件或目录

我几乎准备好发布我的iPhone应用程序。 我使用restkit消费我的web服务。 当我存档时,它会失败,并出现此错误: cp:/ Users / myusername / Library / Developer / Xcode / DerivedData / project-name- / ArchiveIntermediates / project-name / IntermediateBuildFilesPath / UninstalledProducts / include / RestKit:没有这样的文件或目录 我把restkit拖放到项目中。 它在debugging模式下构build并正常工作。 我猜测归档时无法findrestkit目录。 但我不知道为什么。 有什么想法吗?

基于时间的同步与restkit

我们的应用程序使用Web API,也使用核心数据。 我们正在成功使用Restkit在应用程序和数据库之间发送和接收数据。 但是,我们在实现服务器和应用程序之间的条件同步时遇到困难。 服务器上的其中一个表具有“updated_at”字段。 该表对应于我们的iOS应用程序上的NSManagedObject。 我们试图build立一种更新设备上的pipe理对象的方法,只有当从服务器调用的'updated_at'字段比设备上的'updated_at'字段更新或更晚时。 看起来,RKObjectManager在调用完成块之前映射到核心数据,因此不允许我们在完成块中执行必要的同步逻辑。 如果有可能的话,是否有人能够概括地说明我们正在尝试做什么可以使用Restkit来实现。

RestKit – 无法显示JSON数据到我的tableView

我正在使用Rest Kit 0.20.3和带有核心数据的Xcode 5。 我从我的服务器收到JSON数据,但我无法在tableView控制器上显示它。 这里是AppDelegate.m中的映射和响应描述符代码 RKEntityMapping *playerMapping = [RKEntityMapping mappingForEntityForName:@"Player" inManagedObjectStore:managedObjectStore]; [playerMapping addAttributeMappingsFromDictionary:@{@"id": @"playerID", @"name": @"playerName", @"age": @"playerAge", @"created_at": @"createdAt", @"updated_at": @"updatedAt"}]; RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:playerMapping method:RKRequestMethodGET pathPattern:@"/players.json" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; [objectManager addResponseDescriptor:responseDescriptor]; 和我的代码为我的tableViewController.m GET方法 -(void)loadPlayers{ [[RKObjectManager sharedManager] getObjectsAtPath:@"/players.json" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){ [self.refreshControl endRefreshing]; NSLog(@"IT WORKED!"); self.fetchedResultsController = [mappingResult firstObject]; }failure:^(RKObjectRequestOperation *operation, […]

iOS和RestKit:如何获得文本/ HTML的回应权利?

我已经尝试了几个StackOverflow的问题,我开始find正确的答案。 我使用Chrome的POSTMAN插件来检查我的REST调用,我无法弄清楚为什么我不能读取响应。 在评论中,您将看到我为获得答复所做的所有不同尝试。 NSDictionary* session_params = @{SESSION_USERNAME_KEY:SESSION_USERNAME_VALUE, SESSION_PASSWORD_KEY:SESSION_PASSWORD_VALUE}; NSURL* url = [NSURL URLWithString:SESSION_URL]; RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:url]; //GET THE **** THING TO INTERPRET A TEXT response //[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:RKMIMETypeTextXML]; //[objectManager setAcceptHeaderWithMIMEType:@"text/html"]; //[objectManager setAcceptHeaderWithMIMEType:RKMIMETypeTextXML]; //[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"text/html"]; //[RKMIMETypeSerialization registerClass:[RKNSJSONSerialization class] forMIMEType:@"text/html"]; //[objectManager setRequestSerializationMIMEType:@"text/html"]; //END NSMutableURLRequest* request = [objectManager requestWithObject:nil method:RKRequestMethodPOST path:SESSION_URL parameters:session_params]; RKObjectRequestOperation* […]