在Xcode项目模板中定位iOS 6时UIApplicationMain出错

时间:2013-11-21 13:43:23

标签: ios objective-c xcode

我是Xcode的新手,所以如果这是一个简单的解决方案,我很抱歉。

重现问题的步骤是

  • 根据MasterDetail模板在Xcode中创建一个新项目
  • 正常运行此项目
  • 在部署目标中将“7.0”更改为“6.0” 弹出菜单
  • 运行此项目会引发错误:

    * 由于未捕获的异常'NSInvalidArgumentException'而终止应用, 原因:' - [XYZMasterViewController setPreferredContentSize:]:无法识别 选择器发送到实例0x1d08fd10'

我怀疑问题是由于某些语法或配置更改与iOS 6和7之间的main.m相关或可能 -

@autoreleasepool {
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([XYZAppDelegate class]));
}

提前致谢

1 个答案:

答案 0 :(得分:3)

问题是setPreferredContentSize is only available in IOS 7.0。您可以在代码中搜索preferredContentSize,记住可能使用点表示法调用setPreferredContentSize

当你找到setPreferredContentSize时,你应该这样做:

    if ([controller respondsToSelector:@selector(setPreferredContentSize:)])
     {
         // iOS 7
         controller.preferredContentSize = ...;
     }
     else
     {
         // iOS < 7
         controller.contentSizeForViewInPopover = ...;
     }