我们现在正在销售一款iOS应用,同时使用相同的代码库在XCode 5 DP上开发iOS 7版本。
我们真的需要为现有的iOS 5/6客户立即发布更新,但是当我们将项目重新加载到XCode 4中时,它会因为不存在的属性而报错,因为基本SDK变成了iOS 6,而不是7。
(obfuscated to avoid breaking NDA)
XCode错误:
• 在“UIViewController *”对象上找不到属性'fooForExtendedLayout' • 使用未声明的标识符“UIFooEdgeLeft” • 使用未声明的标识符“UIFooEdgeRight” • 在“UIViewController *”对象上找不到属性'bottomLayoutFoo'
注释掉新代码将很痛苦。重写代码以兼容旧版和新版基础SDK的正确方法是什么?现在(通过XCode 4并构建iOS 6 SDK)提交它是否会冒任何应用商店拒绝的风险?
我们真的需要为现有的iOS 5/6客户立即发布更新,但是当我们将项目重新加载到XCode 4中时,它会因为不存在的属性而报错,因为基本SDK变成了iOS 6,而不是7。
// Only run this bit on iOS 7
if ([self respondsToSelector:@selector(setFooForExtendedLayout:)])
{
self.fooForExtendedLayout = UIFooEdgeLeft | UIFooEdgeRight;
}
float bottomOffset = 0;
// Only run this bit on iOS 7, else leave bottomOffset as 0
if ([self.hostController respondsToSelector:@selector(bottomLayoutFoo)])
bottomOffset = self.hostController.bottomLayoutFoo.length;
(obfuscated to avoid breaking NDA)
XCode错误:
• 在“UIViewController *”对象上找不到属性'fooForExtendedLayout' • 使用未声明的标识符“UIFooEdgeLeft” • 使用未声明的标识符“UIFooEdgeRight” • 在“UIViewController *”对象上找不到属性'bottomLayoutFoo'
注释掉新代码将很痛苦。重写代码以兼容旧版和新版基础SDK的正确方法是什么?现在(通过XCode 4并构建iOS 6 SDK)提交它是否会冒任何应用商店拒绝的风险?