【发布时间】:2018-02-01 22:15:15
【问题描述】:
我在 Apple Watch 上收到以下错误
2018-01-21 19:12:46.144394+0100 nightguard[242:13146] [User Defaults] CFPrefsPlistSource<0x155ad5c0> enter code here`(Domain: group.de.my-wan.dhe.nightguard, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: Yes): Byte count limit reached
这个错误似乎是在执行以下代码后立即发生的:
guard let defaults = UserDefaults(suiteName: AppConstants.APP_GROUP_ID) else {
... // shouldn't matter
}
let value = defaults.float(forKey: "maximumBloodGlucoseDisplayed")
应用程序随后关闭。在查看 UserDefaults 类中的代码 cmets 时,苹果说应该只对 tvOS 有限制:
当用户默认值中存储的数据多于允许的数据时,NSUserDefaultsSizeLimitExceededNotification 会发布在主队列中。目前对本地用户默认设置没有限制,除了 tvOS,警告通知将以 512kB 发布,进程以 1MB 终止。对于普遍存在的默认值,限制取决于登录的 iCloud 用户。
更新到 IOS 11 后我们注意到了这个问题。所以可能是 IOS 11 引入了限制。
也许有人可以对此有所了解,或者可以告诉我这个错误的真正原因是什么。
【问题讨论】:
标签: ios watchkit apple-watch