2010-06-17 69 views
0

我已經建立了在Xcode我的數據模型,像這樣核心數據 - 實體關係工作不正常

EntityA

AttA1 AttA2

EntityB

AttB1位 AttB2位 AttB3

然後我建立了關係

EntityA

名稱:rlpToEntityB

目的地:EntityB

逆:rlpToEntityA

許多:經過

EntityB

名稱:rlpToEntityA

目的地:EntityA

逆:rlpToEntityB

許多:未選中

即兩者之間的關係,其中EntityA的每一個可以有很多EntityB的

這是我的理解是,如果我取EntityB的一個子集我可以檢索相關EntityA的值。

我有這種工作,這樣我可以使用檢索EntityB值

NSManagedObject * objMO = [fetchedResultsController objectAtIndexPath:indexPath];

strValueFromEntityB = [objMO valueForKey:@「AttB1」];

不過,如果我嘗試做以下

strValueFromEntityA =檢索來自EntityA相關值objMO valueForKey:@ 「AttA1」];

我得到的錯誤「實體EntityB不是鍵值編碼兼容的關鍵Atta1」

毫不奇怪我想,如果我轉乾坤從EntityA獲取如此覺得我無法訪問EntityB的屬性定義的關係圖被忽略。

任何人都可以發現我做錯了什麼嗎?

我承認我對iPhone編程非常陌生,特別是核心數據,所以請在我身上輕鬆一下,並提供詳細的解釋或指向特定資源的方向。我已經下載了蘋果示例應用程序(核心數據手冊,熱門歌曲和食譜),但我仍然無法解決這個問題。

在此先感謝, 內華達州

回答

1

你不能在一個實體從另一實體獲得的屬性直接。借用您的術語,你應該做這樣的事情:

(實體B) - >(關係到A) - >(A的屬性)

[[objMO valueForKey: @"rlpToEntityA"] valueForKey: @"AttA1"] 
1

非常感謝你的迴應,但我現在已經解決了我自己的問題。雖然我確定你的迴應有一些優點,但這不是我用來解決我的問題的。 (也許我沒有解釋得很好,因此反應不足),但總之我需要使用valueForKeyPath方法而不是valueForKey。

Cheers, Nev。