大佬教程收集整理的这篇文章主要介绍了iphone – 使用RestKit进行发布导致nil对象被发布,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的发布代码,然后是控制台输出.该应用程序从服务器获取对象很好.
// Sync the added object to the server // **************************************** RKObjecMapping *responseMapping = [RKObjectMapping mappingForClass:[Event class]]; // RKEntitymapping *responseMapping = [RKEntitymapping mappingForEntityForName:@"Event" inManagedObjectStore:self.managedObjectStore]; [responseMapping addAttributeMappingsFromDictionary:@{ @"id": @"eventId",@"name": @"name",@"amount": @"amount",@"length": @"length",@"updated_at": @"updatedAt",@"created_at": @"createdAt",@"latitude": @"latitude",@"longitude": @"longitude",@"thumbnail": @"thumbnail",@"airTemp": @"airTemp",}]; NSIndexSet *statusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClasssuccessful); // Anything in 2xx RKResponseDescriptor *eventDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:responseMapping pathPattern:@"/events" keyPath:@"events" statusCodes:statusCodes ]; RKObjectMapping *requestMapping = [RKObjectMapping requestMapping]; // objectClass == NSMutableDictionary [requestMapping addAttributeMappingsFromDictionary:@{ @"id": @"eventId",}]; // For any object of class Article,serializE into an NSMutableDictionary using the given mapping and nest // under the 'article' key path RKrequestDescriptor *requestDescriptor = [RKrequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[Event class] rootKeyPath:@"events" ]; LOCATIOnsAppDelegate *appDelegate = (LOCATIOnsAppDelegate *)[[UIApplication sharedApplication] delegate]; // RKObjectManager *manager = [RKObjectManager managerWithBaseURL:gBaseURL]; [RKObjectManager sharedManager].requestserializationMIMEType = RKMIMETypeJSON; [[RKObjectManager sharedManager] addrequestDescriptor:requestDescriptor]; [[RKObjectManager sharedManager] addResponseDescriptor:eventDescriptor]; NSLog(@"RVC-addEvent %@ - %@",appDelegate.user.login,appDelegate.user.password); [[NBEventManager sharedManager] setUsername:appDelegate.user.login andpassword:appDelegate.user.password]; appDelegate.objectManager.httpClient = [NBEventManager sharedManager]; event = [eventsArray objectATindex:0]; [[RKObjectManager sharedManager] postObject:event path:@"/events" parameters:nil success:nil failure:nil ]; }
这是我的代码,因为我已将所有映射移动到应用程序委托并实现了RKEntitymapping.我仍然没有附加到POST调用的JSON对象.
RKEntitymapping *eventMapping = [RKEntitymapping mappingForEntityForName:@"Event" inManagedObjectStore:managedObjectStore]; [eventMapping addAttributeMappingsFromDictionary:@{ @"id": @"eventId",}]; eventMapping.identificationAttributes = @[ @"eventId" ]; //RKRelationshipMapping *eventRelationship = [RKRelationshipMapping relationshipMappingFromKeyPath:@"events" // toKeyPath:@"events" // withMapping:eventMapping]; //[eventMapping addPropertymapping:eventRelationship]; // Register our mappings with the provider RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:eventMapping pathPattern:nil keyPath:@"event" statusCodes:rKStatusCodeIndexSetForClass(RKStatusCodeClasssuccessful)]; [objectManager addResponseDescriptor:responseDescriptor]; RKEntitymapping *eventrequestMapping = [eventMapping inverseMapping]; RKrequestDescriptor *eventrequestDescriptor = [RKrequestDescriptor requestDescriptorWithMapping:eventrequestMapping objectClass:[Event class] rootKeyPath:@"event" ]; [objectManager addrequestDescriptor:eventrequestDescriptor]; [RKObjectManager sharedManager].requestserializationMIMEType = RKMIMETypeJSON;
以上是大佬教程为你收集整理的iphone – 使用RestKit进行发布导致nil对象被发布全部内容,希望文章能够帮你解决iphone – 使用RestKit进行发布导致nil对象被发布所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。