我想要一個自定義類對象來保存數據,並且不知何故,創建大約80個屬性並不是最好的方式。類屬性vs NSArray/NSDictionary
大部分屬性都是布爾值,所以我想創建數組(鍵/值)或(可能更好)附加到對象的NSDictionary用於保存數據。這是有道理的,還是我應該留下的財產?
額外:對於不同的方法是否有一般優點和缺點?以及我需要尋找哪些關鍵字/概念來尋找關於某種常見問題的討論?
在此先感謝
我想要一個自定義類對象來保存數據,並且不知何故,創建大約80個屬性並不是最好的方式。類屬性vs NSArray/NSDictionary
大部分屬性都是布爾值,所以我想創建數組(鍵/值)或(可能更好)附加到對象的NSDictionary用於保存數據。這是有道理的,還是我應該留下的財產?
額外:對於不同的方法是否有一般優點和缺點?以及我需要尋找哪些關鍵字/概念來尋找關於某種常見問題的討論?
在此先感謝
如果您期望某些行爲,您應該使用類來創建對象(在將來的程序中)。我的意思是,對象 - 不僅僅是存儲變量的東西。它也假設某種活動(稱爲行爲)。屬性不僅是設置某些值的方式(作爲對象的特性),還有影響這種行爲的方式(除了保存數據 - 一些檢查或smth.else外,您可以添加額外的代碼部分)。
如果你只需要構造來存儲數據 - 這不僅僅是更好,這是一個更合乎邏輯的步驟來將它們存儲爲數組或字典。
字典在大多數情況下更好,因爲您可以通過鍵名訪問存儲的值。而你的代碼將會更容易理解。但數組應該是(我不知道確切地說,只是假設)更快地訪問(在其他字符串中找到字符串鍵比在遞增數字序列中的索引更難找到)。
我同意你好得多使用對象來保存這些值。它會讓你的代碼更清晰閱讀/理解。我會去使用NSDictionary而不是數組,因爲你可以通過名字訪問每個布爾值。一個數組意味着你必須通過索引來訪問元素,這使得代碼難以理解。
NSArray
NSArray
在索引容器中存儲基礎對象(基數NS
類型對象,如NSNumber
,NSString
等)。 NSArray
沒有鍵值對。您將使用NSDictionary
將鍵值對中的Foundation對象存儲起來。
80的東西很多。你可以將它們分組爲子集?這可能會使該數據集的維護更易於管理。
實際上,我只需要該數據對象來設置和保存數據。所以,當我明白你的權利,我根本不需要一個自定義數據對象,但應該直接使用NSDictionary對象呢? – 2010-04-30 11:56:03
關於使用80多個變量......我認爲,Alex Reynolds的建議(下面)是最好的 - 你應該嘗試將類似的數據分組來創建子集。 如果你的數據真的很「簡單」(如bool,int或float值 - 沒有硬內存管理),你也可以使用結構(C-structs)。優點:良好的內存使用(沒有額外的內存用於保存密鑰或其他內容),代碼完成(打字時)和編譯器時間檢查。 – kpower 2010-05-04 08:07:52
+1好答案。 – 2010-06-22 03:12:49