Ios 当前小部件扩展的问题
我的应用程序有一个Today小部件,但是有人告诉我它有一个问题 基本上,看起来正在发生的事情(我自己无法测试)是小部件有时只显示“无法加载”,而其他时候它只显示高度为0 我真的不明白为什么会这样。我已经在我的设备和模拟器上测试了几个星期了,从来没有遇到过这个问题 我想知道是否可能是因为刷新代码:Ios 当前小部件扩展的问题,ios,swift,ios-app-extension,Ios,Swift,Ios App Extension,我的应用程序有一个Today小部件,但是有人告诉我它有一个问题 基本上,看起来正在发生的事情(我自己无法测试)是小部件有时只显示“无法加载”,而其他时候它只显示高度为0 我真的不明白为什么会这样。我已经在我的设备和模拟器上测试了几个星期了,从来没有遇到过这个问题 我想知道是否可能是因为刷新代码: func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!)
func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {
// Perform any setup necessary in order to update the view.
var defaults = NSUserDefaults(suiteName: "group.AffordIt")
var newCheck = defaults.boolForKey("new")
if newCheck == true {
completionHandler(NCUpdateResult.NewData)
} else {
completionHandler(NCUpdateResult.NoData)
}
}
每当我的应用程序中需要在小部件中显示的内容发生变化时,“newCheck”即为真
有人知道这些问题的可能原因吗?您是否使用自己的视图控制器和xib而不是脚本?如果是,则可能是您没有在视图控制器中设置preferredContentSize 尝试将以下代码放入您的视图控制器的init函数中:
self.preferredContentSize = CGSizeMake(320, 100);
我今天刚刚开始扩展编程,所以我不确定它是否真的对你有帮助。以下是我自己的小部件中的结果:
如果您的扩展经常崩溃,则会显示“无法加载”消息。您可以尝试通过删除并再次添加扩展来重新启用它
我发布了我的应用程序更新以解决另一个bug。我根本没有修改小部件代码,它似乎已经修复了它,所以它可能是一个iOS 8错误。如果用户尝试使用小部件而从未打开过应用程序,则仍会显示“无法加载”错误。那么,有没有办法更改此消息?@user3746428您可以创建一个
NSUserDefaults
键(谷歌如何读取应用程序和小部件之间的共享默认值),这是一个简单的BOOL
,指示您的应用程序是否已首先运行。当应用程序启动时检查按键,如果按键为false
则显示一条消息,告诉用户先运行应用程序。