2011-04-21 22 views
0

這是一個非常基本的問題,但我正在努力尋找答案。我有一個NSManagedObjectiSelectedObject獲取NSArray到NSManagedObject的最直接的方法

假設我有一個條件以後,拉或者從一個NSArrayController一個NSOutlineViewselectedObjects,這取決於(無關這個問題)標準representedObject,然後我需要運行,需要一個NSManagedObject要被饋送到它的方法。這個工作正常,當我從NSOutlineView餵它representedObject - 這當然是一個NSManagedObject當這樣挑選。但是,如果我抓住我的NSArrayControllerselectedObjects,這是一個NSArray,我無法將其提供給我的方法。

我知道,一個NSArray可以包含NSManagedObjects和感覺的解決方案也許是去更深一層到我類似NSArray或一些簡單,但我會怎麼養活我的NSArray我的方法,需要和NSManagedObject。我應該以某種方式提取/轉換它嗎?

(作爲幫助:我甚至試圖餵養方法的原因是NSArray是因爲它和替代方案NSManagedObject都有相同的數據保存在裏面,也就是說,如果我使兩個函數完全相同一個人期望NSArray和一個期望NSManagedObject,他們完美的工作。我有單獨的選擇挑選NSArrayNSManagedObject的唯一原因是因爲這似乎是默認分別爲selectedObjectsrepresentedObject吐出,如果我可以拔出一個或其他兩個,這將是完美的解決方案,但我不確定如何)

+0

那麼這個神祕的方法對數組和單個對象都有效嗎?如果您向我們展示代碼,那麼瞭解您遇到的問題會更容易。如果傳遞給方法的類型無關緊要,那麼只需將參數聲明爲「id」類型即可完成。 – 2011-04-21 17:28:47

+0

啊哈!我認爲'id'可以做到這一點!謝謝!我一直過於具體,避免'id'這麼長時間以至於我甚至沒有想到在這裏使用它。 – biscuitstack 2011-04-21 18:31:43

回答

0

我能夠改變方法,期望類型id而不是NSManagedObject,並停止它抱怨。

1

如果NSArray只有連續AINS一個對象,你可以只拉NSManagedObject出的NSArray與

[array lastObject]; 

如果有多個對象,通過陣列運行和測試與

[object isKindOfClass:[NSManagedObject class]]; 

不管怎樣每個對象,這將使你可以使用你的方法的NSManagedObject。

+0

謝謝。不適用於這種特定的情況,但它通常會是,這是一個很好的答案。 – biscuitstack 2011-04-23 11:29:30