2013-07-22 8 views
1

2 개의 테이블이 있습니다. 자산 및 보상이 있습니다. 자산 < ----> 마찬가지로 보상 테이블 필드에 액세스하려고 할 때 relationshipname assetrewards를 사용하여 보상합니다. 관계 객체 액세스 일대일 coredata/stackmob

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Assets"]; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"assetsId == %@",str]; 
[request setPredicate:predicate]; 
[self.managedObjectContext executeFetchRequest:request onSuccess:^(NSArray *assetsArr) { 
for (Assets *assets in assetsArr) { 
NSLog(@"assets %@",[assets valueForKey:@"assetrewards.rewardsId"]); 
} 
} onFailure:^(NSError *error) { 

     NSLog(@"Error fetching: %@", error); 

    }]; 

는 내가

: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Assets 0x9fb9380> valueForUndefinedKey:]: the entity Assets is not key value coding-compliant for the key "assetrewards.rewardsId".' 

말을 충돌 보고서를 얻고있다하지만 난 현명한

같이 확인하고 때 이 같은 971,952,887,

내가 무엇입니까 출력 :

assets <Rewards: 0xad8a4f0> (entity: Rewards; id: 0x9fe4bf0 <x-coredata://B2D33481-2AF2-4C6D-9428-33BDCF653881-15578-00004A2B32ACC29E/Rewards/pc05848de529d4cbab6eb4475a5f9f591> ; data: <fault>) 

나는 관계 보상 필드의 모든 값에 액세스 할/또는 내가 세부 사항을 얻으려면 관련 보상이 있으므로 특정 자산에 대한 보상의

답변

1

assetrewards.rewardsId과 같은 다단계 키 경로에서 valueForKey:을 사용할 수 없습니다. valueForKeyPath:을 사용해야합니다. 작성된대로 코드는 assetrewards.rewardsId이라는 키, 이 아닌 키를 찾고 rewardsId이라는 키를 가진 객체로 연결되는 키는 assetrewards입니다.

+0

고맙습니다. 저의 위대한 업적은 저를 위해 일찍이이 작은 논리를 알고있었습니다 ... @Tom. – iOSDev