2013-05-19 35 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