2013-07-22 48 views
1

我有2個表資產和獎勵有關 資產< ---->獎勵,關係名資產獎勵,當我試圖訪問獎勵表字段時訪問關係對象時碰到一對一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".' 

,但是當我檢查喜歡聰明

NSLog(@"assets %@",[assets valueForKey:@"assetrewards"]); 

我得到的輸出是這樣的:

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鍵,名爲assetrewards鍵,導致與命名rewardsId鍵的對象。

+0

謝謝你..它的偉大,它的工作對我來說,前面我已經做到了這一點,但是NVR知道這個小邏輯... @湯姆。 – iOSDev