Sir*_*III 15 ios swift ios8 ios-app-extension
我正在iOS 8中尝试新的TodayExtensions,我按照WWDC视频为iOS和OS X创建扩展,第1部分中的步骤创建了今天扩展.我在提供的故事板中为ViewController添加了一个彩色的UIView.我在"今天"通知中心获得了一个标题,但是我没有使用我的彩色视图.它看起来像这样(我做了两个):

还有其他人得到这个吗?我在所有ViewControllers方法中设置了断点,没有任何东西被调用.我将Info.plist更改为直接转到我的VC类,而不是故事板,我什么都没得到.我可以在info.plist中更改今天扩展名的标题.
首先,要测试发生的任何事情,请将awakeFromNib添加到视图控制器并设置首选内容大小(Obj C中的所有代码):
- (void)awakeFromNib {
[super awakeFromNib];
[self setPreferredContentSize:CGSizeMake(self.view.bounds.size.width, 50)];
}
Run Code Online (Sandbox Code Playgroud)
如上所述,请注释掉默认的init方法并创建一个空的initWithCoder:来解决Beta 2中的一些错误:
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// init
}
return self;
}
//- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
// self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
// if (self) {
// // Custom initialization
// }
// return self;
//}
Run Code Online (Sandbox Code Playgroud)
现在清洁然后再次运行.此时您应该看到它调整大小(确保添加带有文本的标签或要测试的东西).
确保使用普通的UIViewController类进行测试,而不是子类.一旦您看到您的窗口小部件响应,然后尝试子类.我今天花了一个小时才发现使用UICollectionViewController根本不能在Beta 2中工作(将提交RADAR).
如果您正在运行应用程序方案而不是小部件方案,首先要检查的是设备日志或模拟器日志.由于Today的视图是系统的一部分,而不是您在Xcode中调试的应用程序的一部分,因此您不会在Xcode控制台上的小部件视图控制器上看到错误.您可以在系统日志中检查模拟器的控制台:

如果小部件视图控制器发生崩溃,它将显示如下内容:
xxxxx.local Widget [43414]:由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[ TodayViewController 0x7fd893d7ca60> setValue:forUndefinedKey:]:此类不是密钥标签的密钥值编码兼容.
如果您选择窗口小部件目标,xcode会将调试器附加到今天的视图窗口小部件,如果您启用了"所有例外"断点,您将能够查看是否存在异常以及升级的位置.

注释掉原来的init方法:
// init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
// super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// // Custom initialization
// }
Run Code Online (Sandbox Code Playgroud)
添加这个初始化方法:
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
// Custom initialization here
}
Run Code Online (Sandbox Code Playgroud)
清理并构建您的项目。确保您的小部件内容有高度限制。
| 归档时间: |
|
| 查看次数: |
6688 次 |
| 最近记录: |