Objective c 使用NSDictionary或NSMutableArray构建用户配置文件

Objective c 使用NSDictionary或NSMutableArray构建用户配置文件,objective-c,cocoa,Objective C,Cocoa,我正在尝试创建一个存储配置文件信息的应用程序 名称:最早的 电子邮件: 部门: 标题: 最好的方法是什么 我正在考虑使用NSDictionary获取信息。 但我不清楚如何将配置文件的所有属性组合到NSDictionary。。。 我会为姓名创建一个NSDictionary,然后为电子邮件创建另一个,等等 非常感谢您的洞察力,谢谢我知道有一个对象。我没用过它。 有一个解释NSUserDefaults这是针对那些建议使用结构的人的:对不起,如果你不打算使用Objective-C,为什么还要麻烦使用Ob

我正在尝试创建一个存储配置文件信息的应用程序

名称:最早的
电子邮件:
部门:
标题:

最好的方法是什么

我正在考虑使用
NSDictionary
获取信息。
但我不清楚如何将配置文件的所有属性组合到
NSDictionary
。。。 我会为姓名创建一个
NSDictionary
,然后为电子邮件创建另一个,等等


非常感谢您的洞察力,谢谢

我知道有一个对象。我没用过它。
有一个解释NSUserDefaults

这是针对那些建议使用结构的人的:对不起,如果你不打算使用Objective-C,为什么还要麻烦使用Objective-C呢?我不确定这种“使用结构”的趋势是从何而来的,但考虑到使用Cocoa API进行大量操作的主要、一流的应用程序对象,这是荒谬的

对于OP:使用Objective-C类并完成它

NSDictionary作为一个模糊的容器或映射非常好,如果其中的所有内容都是兼容的,那么整个内容(容器和内容)就可以用一行代码归档和取消归档

在您的情况下,您已经知道要描述的对象(概要文件)的一组预定义属性(甚至可能是方法),因此创建一个Objective-C类并使其符合NSCoding,这样您就可以将其存储在任何标准Cocoa容器中,并使其易于存档/未存档,等等。您还可以利用automagic行为,例如使用-fullName属性返回名字和姓氏的串联,同时使用NSPredicate筛选器、按键排序等轻松参与键值观察。您还可以实现-copyWithZone:以便配置文件实例易于复制,等等

“为什么要在钉子上用锤子?这是浪费。外面有很多非常好的棍子,你可以在上面放石头。”


请。。。只需使用一个类。从长远来看,它使添加功能变得非常简单。

使用NSDictionary有什么特别的原因吗?为什么不创建一个类来表示“用户”并将信息存储为类的属性?通常,人们使用NSDictionary将任意键映射到值,其中键不需要是像“NAME”、“EMAIL”(在您的情况下会发生这种情况)这样的小集合的一部分,也不需要在编译时知道。xcode只是一个IDE。将这个问题标记为xcode、xcode4和xcode4.2是没有意义的。您称之为“配置文件信息”是什么?您的意思是“用户默认设置”还是可以在应用程序中管理多个配置文件?@Vince..是的,我的意思是管理多个配置文件..@Vince..是的,我的意思是管理多个配置文件。。你建议我怎么做。。。我是否应该创建一个管理用户配置文件的类。。并为我的每个属性(如姓名、电子邮件等)创建一个方法?您还可以提到,您不能在ARC下的结构中使用Objective-C对象。@Joshua……那么您会像我上面提到的那样继续吗?创建一个具有NSCoding兼容属性的类,并从中继续…或者您有什么建议?@dec:是的。绝对地它听起来像是应用程序中的主要模型对象——应用程序为用户管理的逻辑对象——因此它应该是一个合适的类。如果它是一个结构体,那么你可以用它做的事情就会非常有限。非常在Cocoa中,你通常会用它做的所有典型事情都是一场艰苦的战斗。结构对于简单的数据操作非常有效,但应出于特定、有效的原因选择,对于Cocoa/Objective-C应用程序,默认为。@Abizem:实际上可以将结构与ARC一起使用,但它们更复杂:Joshua Nozzi和@quixoto:感谢您的更正。我已经删除了我的答案,因为使用structs和你说的一样糟糕。但我确实认为,对于简单的情况,这是可行的。