2013-05-19 68 views
0

我正在學習iOS編程,並不介意在我的應用程序NSDictionaryCore Data中使用的最適合的類的意見或兩個。我希望能夠創建一組具有一組屬性的記錄。iOS類選擇NSDictionary或核心數據

例如,名稱:喬公民,年齡:38,性別:男,職業:動物園管理員,城市:悉尼等

我希望能夠隨機選擇一個或多個屬性的記錄。昨天晚上,我正朝着一個NSDictionary解決方案邁進,在那裏我將屬性嵌入位映射字中,將其轉換爲字符串,然後將字符串附加到該字符串以使密鑰唯一,如k_stringbitpattern_uniquenumber。爲了獲得隨機標識符,我會生成一個隨機數,將其掩蓋,將其轉換爲字符串等,直到我意識到它變得太麻煩。

我是iOS編程新手,正在考慮速度,內存使用,優雅和重用。獲得 經驗豐富的意見將有所幫助。

如果我使用的術語不是嚴格正確的(即記錄陣列),我很抱歉。 噢,是的,記錄是隻讀的,我希望稍後能夠擴展我的應用程序以從網站中提取數據。任何有幫助的 評論贊賞。

+0

不知道你爲什麼要隨機選擇,你沒有說你的數據集有多大,但你最可能使用核心數據。 – Wain

+0

我同意@Wain。另外核心數據是一個框架,而不是一個類。您還需要考慮如何最初存儲數據。 – trojanfoe

+0

哦,你是對的。我想我補充說我希望數據集從幾百字到幾千字。我想這會影響存儲的方法。隨機記錄選擇是我的應用程序設計的一個功能(不是bug :))。感謝您的意見。到目前爲止,基於經驗豐富的觀點,我似乎應該關注核心數據框架。 – stackQA

回答

1

這真的是一個問題programmers.stackexchange.com

我的答案是建立最簡單,最容易理解的模型,不用擔心優化問題。

對你而言,我會推薦一個普通的舊Objective-C對象的NSArray。在你的對象類中,把所有的屬性變成屬性。使用NSNumber代替NSIntegerint代表數字。搜索可以通過簡單的循環或-filteredArrayUsingPredicate:完成。

稍後,如果基於性能需求,切換到核心數據應該不會太痛苦。看看MagicalRecord。這是對核心數據複雜性非常需要的簡化。

我不會建議使用NSDictionary構建自己的索引。那時,你開始寫自己的數據庫。其他人已經解決了這個問題。

+0

謝謝傑弗瑞。非常讚賞的答案。我也研究這些建議。 – stackQA