ios - 我所有 View Controller 的中央数据源

标签 ios objective-c iphone ipad uiviewcontroller

所以我有一个带有一堆(比如 25 个以上) View Controller 的应用程序。这些 vc 使用大量数据,我可以将其中大部分存储在应用程序本地,或存储在我的服务器上。我宁愿将这些数据存储在我的服务器上以最小化应用程序大小,所以为了做到这一点,我在某处读到这样做的最佳实践是拥有一个数据类,这将是一个特殊的类,可以从中获取所有数据一次在一个地方访问互联网,而不是像 viewDidLoad 或类似的地方那样根据需要获取个人数据。所以我的问题是,在我的应用程序中创建一个中央数据源并且每个类都从中提取数据真的更好吗?如果是这样,您能否举例说明我应该如何设置该类(class)。例如,如何让它在后台运行(我猜是不同的线程)以及如何根据需要将 NSDictionarys 和 NSArrays 等从数据源传递到各个类。提前致谢。如有必要,我可以澄清。

最佳答案

你在谈论两个不同的话题:

  1. 从所有 View Controller 的主要来源访问数据。
  2. 从服务器访问数据。

对您来说最好的解决方案是创建一个新类来保存由一些不同类使用的变量。 This tutorial解释了如何做到这一点 - 我认为这将是您可以在互联网上找到的最佳解决方案之一。

为了解决第二个问题,您还应该创建一个执行 SQLite 语句并从数据库中获取信息的类。你应该使用 SQLite 来做到这一点,如果你不喜欢它,你可以尝试使用 Core Data,尽管在我看来 SQLite 更简单。 This tutorial描述了如何做到这一点。

完成这两件事后,您可以在 View Controller 之间共享信息的类中创建一个为您处理数据库服务的类的实例,并从不同的 View Controller 访问该实例。

最后,您可以尝试在不同的线程上执行类似的任务。您应该尝试使用 NSOperationQueue 对象来完成它——它们将为您完成大部分工作。我建议在 developer documentation 中阅读有关它们的信息由 Apple 提供,以便了解其工作原理。

关于ios - 我所有 View Controller 的中央数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990736/

相关文章:

iOS 自动布局 : Equal Spaces to Fit Superviews Width

iphone - 显示录音的声波

iphone - 为没有 Cydia 的越狱 iPhone 分发未签名的应用程序 iPhone

ios - 如何在没有警告的情况下解决 iOS 中的单独问题?

ios - 按下编辑按钮时如何在导航栏中添加加号按钮?

ios - 从 plist 获取数据到 NSMutableArray 并将 NSMutableArray 写入同一个 plist iPhone

objective-c - 问号和冒号是什么意思(?: ternary operator) mean in objective-c?

objective-c - 对数组求和 - Objective-C

iphone - 首次安装后,临时iPhone构建两次崩溃,但是没有问题

ios - 如何使用 iOS Simulator 7\XCode 5 测试 iOS 7 之前的用户界面(无需升级 iOS 7 的应用程序)