2011-12-27 41 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

相关问题