Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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
Objective c RestKit-与CoreData的关系映射-响应错误_Objective C_Core Data_Restkit - Fatal编程技术网

Objective c RestKit-与CoreData的关系映射-响应错误

Objective c RestKit-与CoreData的关系映射-响应错误,objective-c,core-data,restkit,Objective C,Core Data,Restkit,我有一个客人实体,里面的客人是一个城市实体。我已经使用RKRelationshipMapping在CoreData和RestKit中建立了关系 我已正确映射了单个实体,但当我使用RKRelationshipMapping添加城市实体时,在使用@“cityId”属性调用以下方法时,似乎会生成此错误: -[RKPropertyInspector classForPropertyNamed:ofEntity:]: unrecognized selector sent to instance 我的映射

我有一个客人实体,里面的客人是一个城市实体。我已经使用RKRelationshipMapping在CoreData和RestKit中建立了关系

我已正确映射了单个实体,但当我使用RKRelationshipMapping添加城市实体时,在使用@“cityId”属性调用以下方法时,似乎会生成此错误:

-[RKPropertyInspector classForPropertyNamed:ofEntity:]: unrecognized selector sent to instance
我的映射代码:

RKObjectManager *objectManager   = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:self.serverBaseAddress]];
    objectManager.managedObjectStore = [RKManagedObjectStore defaultStore];

    [RKObjectManager setSharedManager:objectManager];

    RKEntityMapping *cityEMapping = [RKEntityMapping mappingForEntityForName:self.cityEntityName inManagedObjectStore:[RKManagedObjectStore defaultStore]];
    [cityEMapping addAttributeMappingsFromDictionary:@{
                                                        @"id"    : @"cityId",
                                                        @"name"  : @"name"
                                                        }];

    RKEntityMapping *guestEMapping = [RKEntityMapping mappingForEntityForName:self.entityName inManagedObjectStore:[RKManagedObjectStore defaultStore]];
    [guestEMapping addAttributeMappingsFromDictionary:@{
                                                        @"name"     : @"name",
                                                        @"photo"    : @"photo",
                                                        @"comment"  : @"comment",
                                                        @"id"       : @"guestId",
                                                        @"date"     : @"date"
                                                        }];

    [guestEMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"city"
                                                                                  toKeyPath:@"city"
                                                                                withMapping:cityEMapping]];

    guestEMapping.identificationAttributes = @[ @"guestId" ];

    RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:guestEMapping method:RKRequestMethodAny pathPattern:self.postGetAddress keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
    [objectManager addResponseDescriptor:responseDescriptor];
以及应用程序停止的位置:(propertyClass接收propertyClass中的0x00=[[RKPropertyInspector sharedInspector]…)

下面是json:

    [{"id":"3","name":"Convidado3","city":{"id":"2","name":"São Paulo"},"date":"Data2","comment":"comentario3","photo":":P"},
     {"id":"2","name":"Convidado2","city":{"id":"1","name":"Rio de Janeiro"},"date":"Data2","comment":"comentario2","photo":":|"},
     {"id":"1","name":"Convidado1","city":{"id":"1","name":"Rio de Janeiro"},"date":"Data1","comment":"comentario1","photo":":)"},
     {"id":"5","name":"Convidado5","city":{"id":"4","name":"Vitória"},"date":"Data4","comment":"comentario5","photo":":K"},
     {"id":"4","name":"Convidado4","city":{"id":"3","name":"Belo Horizonte"},"date":"Data3","comment":"comentario4","photo":";)"}]
实体来宾具有名为city的关系,该关系通过名为来宾的关系以以下方式连接到城市实体:
来宾……城市
城市>客人

如果我只是删除关系,它的工作正常,没有城市子对象。。。
感谢您的帮助或建议……

我已经解决了这个问题:

在完成调试中的所有步骤后,我更改了以下行

发件人:

RKEntityMapping *cityEMapping = [RKEntityMapping mappingForEntityForName:self.cityEntityName inManagedObjectStore:[RKManagedObjectStore defaultStore]];
RKEntityMapping *cityEMapping = [RKEntityMapping mappingForEntityForName:@"City" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
至:

RKEntityMapping *cityEMapping = [RKEntityMapping mappingForEntityForName:self.cityEntityName inManagedObjectStore:[RKManagedObjectStore defaultStore]];
RKEntityMapping *cityEMapping = [RKEntityMapping mappingForEntityForName:@"City" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
成功了

我不理解这个问题,因为我在调试期间检查了self.cityEntityName的值,它是@“City”,所以从技术上讲它应该可以工作。至于行:

RKEntityMapping *guestEMapping = [RKEntityMapping mappingForEntityForName:self.entityName inManagedObjectStore:[RKManagedObjectStore defaultStore]];

工作正常…没有任何更改,我不知道该说什么。感谢您的建议。

您是否在城市映射中遗漏了标识属性?您是否正确设置了链接器值?好的,我已在城市映射中添加了标识属性(在
RKEntityMapping*cityEMapping
之后),
CityMapping.identificationAttributes=@[@“cityId”];
现在错误在别处:
静态NSArray*RkarayOfAttributesForentityFromAttributesRNAMES(NSEntityDescription*实体,NSArray*AttributesRNAMES)
…我可以看到guest实体,它有一个城市属性,其值为nsrrelationshipDescription。但是当代码运行时,
NSAttributeDescription*属性=[[entity attributesByName]valueForKey:attributeOrName]
attribute接收nil…这会引发一个
NSException
Wain,你所说的链接器值是什么意思?为了帮助澄清我是如何获得当前代码的,我一直在遵循,Relationships,部分代码。。。