2011-12-27 64 views
0

我試圖創建一個存儲的個人資料信息的應用程序的用戶配置文件..與棟NSDictionary的或NSMutableArray的

名稱:第一個最後
電子郵件:
部:
標題:

什麼是最好的方法?...

我正在考慮使用NSDictionary作爲信息。
但我不清楚如何將配置文件的所有屬性合併到NSDictionary ... 我會爲NAMES創建一個NSDictionary,然後爲EMAILS創建另一個等...?

任何見解是極大的讚賞,感謝

+0

是否有特別的理由使用NSDictionary?爲什麼不讓一個類代表一個'用戶'並將信息存儲爲該類的屬性?通常情況下,人們使用NSDictionary來將任意鍵映射到值,其中鍵不需要成爲像'NAME','EMAIL'這樣的小集合的一部分(在你的情況下會發生什麼),並且不需要在編譯時知道。 – ArjunShankar 2011-12-27 14:01:57

+2

xcode只是一個IDE。標記這個問題xcode,xcode4和xcode4.2是沒有意義的。 – vikingosegundo 2011-12-27 14:11:08

+0

你叫什麼「個人資料信息」?您的意思是「用戶默認設置」還是在應用程序中管理多個配置文件的可能性? – 2011-12-27 14:11:26

回答

3

這是針對那些誰建議一個結構:我很抱歉,但爲什麼即使打擾使用Objective-C,如果你不打算使用Objective-C?我不確定這個「使用結構體」趨勢是從哪裏來的,但是當考慮將被Cocoa API嚴重操縱的主要的,一流的應用程序對象時,這是荒謬的。

到OP:使用Objective-C類並完成它。

作爲一個模糊的容器或映射,NSDictionary非常棒,並且如果提供的所有內容都符合規範,則可以使用一行代碼對整個事件(容器和內容)進行歸檔和取消歸檔。

就你而言,你已經知道了你想要描述的這個對象(一個Profile)的一組預定義的屬性(甚至可能是方法),所以創建一個Objective-C類並使它符合NSCoding,這樣你就可以隱藏它可以在任何標準的Cocoa容器中使用,並且可以輕鬆存檔/取消存檔等。您還可以利用automagic行爲,例如具有返回第一個和最後一個名字的連接的-fullName屬性,同時輕鬆地在Key Value Observing中參與,使用NSPredicate過濾器,通過按鍵等排序您也可以實現-copyWithZone:這樣一個配置文件實例很容易拷貝,但等

「爲什麼對釘子用錘子這是浪費perfec充沛?好好伸出你可以放石頭。「

請......只是使用一個類。從長遠來看,它使功能變得如此簡單。

+1

你也可以提到你不能在ARC下的結構中使用Objective-C對象。 – Abizern 2011-12-27 16:18:28

+0

@Joshua ...你會繼續像我上面提到的那樣嗎?創建一個具有符合NSCoding屬性的類並從那裏繼續......或者你推薦什麼? – dec 2011-12-27 16:19:50

+0

@dec:是的。絕對。這聽起來像是你的應用程序中的主要模型對象 - 你的應用程序爲用戶管理的邏輯事物 - 所以它應該是一個合適的類。如果它是一個結構,那麼你可以用它做什麼,你會非常有限。非常。在Cocoa中你通常會用它做的所有典型的事情都將是一場艱苦的戰鬥。結構完全適用於數據操作的平滑處理,但應該根據特定的有效原因進行選擇,默認爲Cocoa/Objective-C應用程序。 – 2011-12-27 16:23:32

-2

我知道有一個對象NSUserDefaults的。我沒有用過它。 有一個tutorial解釋NSUserDefaults

相關問題