我很重视这个网站上的意见,想知道大家的想法。我有一个包含数组的应用程序。该数组用于多个 View Controller 。目前,每次打开一个 View Controller 时,我都会创建数组。我不相信这是最好的做法。我之前使用过 NSUserDefaults 和单例,但我对你的任何想法、plist 等持开放态度。我正在寻找让事情快速高效地运行的方法。
另外,我希望用户能够重新排列数组。假设它以 alpha 顺序开始。但是用户发现以其他方式重新排列它会更好。我知道该怎么做,重新排列,但我想知道将原始数组保存在哪里,以便用户可以将顺序重置为原始 alpha 顺序。
所以我想这个问题是双重的。在哪里存储原始数组,以及如何最好地在整个应用程序中访问更改后的数组。非常感谢您的帮助。
编辑#1
我要感谢大家的评论和回答!我觉得这就是社区的意义所在。学习新的和不同的技术很棒。我将尝试尝试所有答案(看看我是否可以真正编程),看看哪一个最适合我。再次感谢这次精彩的对话。
编辑#2
我最终都做了一点,如果没有您的所有评论和回答,我永远不会这样做。我在应用程序委托(delegate)中创建了数组并将其保存在用户默认值中。它不是一个基本数组,它是一个自定义对象数组,所以我不得不使用一些 NSCoding。它也不仅仅是 alpha 排序的,所以我制作了一个可以操作的数组。再次感谢所有伟大的洞察力!
Best Answer-推荐答案 strong>
您可以在 AppDelegate 中创建它的单例实例。
为 AppDelegate.h 中的数组创建一个 @property,然后将该 header 导入您的其他 viewController。
初始化并将数组存储到“didLoadWithOptions”中的 appDelegate 的数组 @property。您可以创建自定义 getter/setter 以允许操作。实际数据可能来自外部 XML、JSON 或 plist 文件,但要进行测试,您只需在 AppDelegate 中硬编码一个数组即可。
每个 viewController 都需要有一个对 appDelegate 的引用,使用描述的方法 in this answer .然后,您可以像访问任何其他属性一样访问 1 数组,
NSArray *dataInVC = myAppDelegate.singletonArray; (...或者如果你想添加/更改/操作,可以使用 NSMutableArray)。
...或者,只需为您的数据创建一个单独的类,并为其创建一个单例版本,以便您以后可以在必要时更轻松地重构。如何做到这一点的例子in this answer
关于ios - iOS 如何与多个 View Controller 共享一个数组,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/24613918/
|