2013-05-16 79 views
-3

我已經存儲在所述第一視圖中核心數據用戶所選擇的類別,然後一個IOS應用顯示從陣列對應於所述類別的隨機項目選擇在下一個視圖中。引用數組對象與字符串的名稱 - 目標C

我除了一部分一切工作:類別保存在覈心數據字符串和我需要的字符串值,並與對應於這些字符串成一個更大的數組名加數組對象。

開始用一個for循環,取這個名字的價值,然後將該對象添加到數組

for (NSManagedObject *obj in matchingData) { 
     name = [obj valueForKey:@"name"]; 
     [categoryArray addObject:name]; 
} 

我有數組宣佈已經對應於它將檢索的名字,但我需要添加這些ARRAYS的Object,而不是從Core Data返回的STRING。我是新來的這種問題,因爲在JS例如這不是一個問題。

是否有ArrayWithNameLike @「名」的功能什麼的?

+1

也許你想爲此使用NSMutableDictionary?您可以構建由名稱和類別組成的此類詞典,並將此對象添加到您的數組中? – duDE

+0

我不知道我理解你的問題,但不會使用'NSDictionary'來檢索一個具有'NSString'作爲關鍵的對象嗎? – Maarten

+0

我認爲這就是我們要嘗試的 –

回答

1

將您的隨機項目數組保存在NSDictionary中,鍵入NSString類別。在這個例子中你想與特定類別相關聯的陣列(通過方法檢索,在這裏創建的,等等)

self.categoryItemArrays = [NSMutableDictionary dictionaryWithCapacity:[matchingData count]]; 

for (NSManagedObject *obj in matchingData) 
{ 
    name = [obj valueForKey:@"name"]; 
    [self.categoryItemArrays setObject:<Cateogry Array> forKey:name]; 
} 

然後爲你的數據源,你可以拿到鑰匙和按字母順序排列它們或者你想怎麼用某種替代

[self.categoryItemArrays allKeys]; 

並且做你的事。

+0

如果您正在創建自己的模型圖層,這是一個很好的建議。如果使用核心數據不是一個好主意。 – bbum

3

如果你正在使用的核心數據,你應該表達自己的核心數據模型中的對象之間的關係。如果你真的想繼續發明你自己的關係管理的道路 - 沒有什麼不對的 - 不要使用Core Data,因爲你最終只會一直在戰鬥。


聽起來你正試圖在創建主從接口重新發明模型關係。

假設你有一個名爲管理對象。每可以在一個類別。每個類別可以有許多書**。 主要細節是指如果您正在構建用戶界面,您在其中選擇了**書籍主人)和類別顯示在輔助用戶界面中。這可以扭轉;您選擇一個類別和* Book * s在該類別中的列表顯示。

關鍵是讓Core Data爲您維護關係。

所以,你需要從類別一個一個一對多關係。

CoreData Books例如進入細節上如何做到這一點。

+1

你說得很對,我們這樣做是一種愚蠢的做法。那裏沒有爭論。 –

+0

在那裏,做到了這一點(在過去的20多年中令人尷尬的大量次數)。 :)有時成功建立在一個蹩腳的基礎上。承認這是戰鬥的一半。 – bbum