Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数组属性中创建RequestDescriptor(iOS RestKit)_Ios_Objective C_Restkit - Fatal编程技术网

如何在数组属性中创建RequestDescriptor(iOS RestKit)

如何在数组属性中创建RequestDescriptor(iOS RestKit),ios,objective-c,restkit,Ios,Objective C,Restkit,以下是api请求定义(json格式示例): object-c中有两个类: @interface MyLocation : NSObject @property (nonatomic, strong) NSNumber* lat; @property (nonatomic, strong) NSNumber* lon; @end 及 有一个问题,当我通过RKObjectManager发布帖子时,接收我帖子的服务器总是 {"Name":"my name", "Location":[]}

以下是api请求定义(json格式示例):

object-c中有两个类:

@interface MyLocation : NSObject
@property (nonatomic, strong) NSNumber* lat;
@property (nonatomic, strong) NSNumber* lon;
@end

有一个问题,当我通过RKObjectManager发布帖子时,接收我帖子的服务器总是

    {"Name":"my name", "Location":[]}

位置数组值似乎没有正确映射,有什么问题吗?

最后我发现根本原因只是请求的mime类型设置。当我使用:

[[RKObjectManager sharedManager] setRequestSerializationMIMEType:RKMIMETypeJSON];

一切顺利!;)

添加跟踪日志记录,它说什么
// MyLocation attribute mapping
RKObjectMapping* attrMapping = [RKObjectMapping mappingForClass:[MyLocation class]];
[attrMapping addAttributeMappingsFromDictionary:@{@"Lon":@"lon", @"Lat":@"lat"}];
RKRelationshipMapping *relatedMapping = [RKRelationshipMapping relationshipMappingFromKeyPath:@"Location" toKeyPath:@"locations" withMapping:attrMapping];

// inverse mapping for requestDescriptor
Class class = [MyRequest class];
RKObjectMapping* reqMapping = [RKObjectMapping mappingForClass:class];
[reqMapping addAttributeMappingsFromDictionary:@{@"Name":@"name"}];
[reqMapping addPropertyMapping:relatedMapping];
RKRequestDescriptor *reqDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:[reqMapping inverseMapping] objectClass:class rootKeyPath:nil method:RKRequestMethodPOST];
    {"Name":"my name", "Location":[]}
[[RKObjectManager sharedManager] setRequestSerializationMIMEType:RKMIMETypeJSON];