1

在尝试为 iOS 8 开发 Today Extension 时,我发现了一个奇怪的问题。每次用户打开通知中心时,似乎都会重新创建我正在使用的视图控制器。这意味着没有数据保留,因此我无法知道扩展是否需要更新。

想要这样做的主要原因是我想保留小部件的高度(使用preferredContentSize)。问题是当视图加载时,这个值总是被重置,这导致小部件的大小跳跃。股票小部件是它应该如何工作的一个例子,他们显然已经解决了这个问题,所以必须有某种方法来保留不同“会话”之间的数据。我还可以从调试器中得知该进程继续运行,因此它只是因为 Apple 代码中的某些内容强制重新创建视图控制器。

我的问题是,这是一个错误吗?还是基于我缺少的某些设置或某些属性?或者它可能只是它应该工作的方式?如果是这样,解决方法是什么?

4

1 回答 1

2

这就是他们的工作方式。将您的信息保存到设备中,以便下次启动时重新加载它,以及更新时间,以便您知道它是否已过时。对于少量数据,只需使用 NSUserDefaults。对于较大数量的保存到文件,CoreData,sqlite 等。

于 2014-08-17T20:31:48.707 回答