• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - iOS 如何与多个 View Controller 共享一个数组

[复制链接]
菜鸟教程小白 发表于 2022-12-13 08:24:56 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我很重视这个网站上的意见,想知道大家的想法。我有一个包含数组的应用程序。该数组用于多个 View Controller 。目前,每次打开一个 View Controller 时,我都会创建数组。我不相信这是最好的做法。我之前使用过 NSUserDefaults 和单例,但我对你的任何想法、plist 等持开放态度。我正在寻找让事情快速高效地运行的方法。

另外,我希望用户能够重新排列数组。假设它以 alpha 顺序开始。但是用户发现以其他方式重新排列它会更好。我知道该怎么做,重新排列,但我想知道将原始数组保存在哪里,以便用户可以将顺序重置为原始 alpha 顺序。

所以我想这个问题是双重的。在哪里存储原始数组,以及如何最好地在整个应用程序中访问更改后的数组。非常感谢您的帮助。

编辑#1

我要感谢大家的评论和回答!我觉得这就是社区的意义所在。学习新的和不同的技术很棒。我将尝试尝试所有答案(看看我是否可以真正编程),看看哪一个最适合我。再次感谢这次精彩的对话。

编辑#2

我最终都做了一点,如果没有您的所有评论和回答,我永远不会这样做。我在应用程序委托(delegate)中创建了数组并将其保存在用户默认值中。它不是一个基本数组,它是一个自定义对象数组,所以我不得不使用一些 NSCoding。它也不仅仅是 alpha 排序的,所以我制作了一个可以操作的数组。再次感谢所有伟大的洞察力!



Best Answer-推荐答案


您可以在 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap