【发布时间】:2014-04-25 08:56:42
【问题描述】:
我有一个项目运行良好。我想在其中加入广告并制作免费版本。我复制了该项目,将其重命名并添加了 iAd.framework。但它已经导致 SIGABRT 运行。
调试不能解释任何事情......它在从根 VC 的 viewDidLoad 方法设置一些 VC 属性时崩溃。我认为这无关紧要,但如果您不这么认为,可以提供详细信息。
与 iAd 链接有什么技巧吗?提前感谢您的帮助!
编辑:添加了日志和一些说明
2014-04-25 16:04:04.249 MyAppTEST[686:60b] -[MPViewController setSoundName:]:无法识别的选择器发送到实例 0x16e43a30
2014-04-25 16:04:04.252 MyAppTEST[686:60b] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[MPViewController setSoundName:]:发送了无法识别的选择器到实例 0x16e43a30'
它抱怨无法识别的选择器(准确地说是属性设置器)。但除了链接 iAd.framework 之外,我没有做任何更改。如果我删除这个框架,它会再次开始正常工作。
经过更多跟踪后,我发现,使用 iAd 框架,[self.storyboard instantiateViewControllerWithIdentifier:@"MPPageContentController"]; 返回一个不正确类型的视图控制器,但不是零!
MPViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MPPageContentController"];
if ([pageContentViewController isKindOfClass:[MPViewController class]]) {
NSLog(@"OK");
}
删除iAd.framework时测试通过,否则失败!有什么建议吗?
编辑2: 这是一个真正的故障!我已将测试更新如下:
MPViewController *pageContentViewController = (MPViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"MPPageContentController"];
if ([pageContentViewController isKindOfClass:[MPViewController class]]) {
NSLog(@"OK");
} else {
NSLog(@"%@", [pageContentViewController description]);
}
并且,如果将 iAd 添加到项目中,控制台中会记录以下内容: " MPViewController: 0xa63fd30 "
我确实在“调试”模式下的“变量视图”面板中看到了必需的 MPViewController 属性,尽管它们声称无法识别……这变得越来越奇怪,但我已经没有前进的想法了!有什么帮助吗?
【问题讨论】:
-
SIGABRT 很可能由于异常而崩溃。抛出了什么异常?
-
2014-04-25 16:04:04.249 MyAppTEST[686:60b] -[MPViewController setSoundName:]:无法识别的选择器发送到实例 0x16e43a30 2014-04-25 16:04:04.252 MyAppTEST[686 :60b] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[MPViewController setSoundName:]:无法识别的选择器发送到实例 0x16e43a30”
-
这是一个很长的镜头,但你可以尝试一个明确的演员表吗?
MPViewController *pageContentViewController = (MPViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"MPPageContentController"]; -
另一个远景:你试过重命名视图控制器类吗?这个错误实际上很有趣;)
-
这令人难以置信,但它帮助了!你是我的英雄;)请回答这个问题,我会投票给它。顺便说一句,是 ios bug 还是什么?!
标签: ios frameworks iad sigabrt ios7.1