好的,我已经开发
iphone-apps超过一年了,
但是有一件事情仍然很糟糕.
假设我想让我的应用程序与iOS 3.0兼容
我将我的sdk设置为可用的最新版本,并将我的部署目标设置为3.0
但是,如果您偶然调用仅在3.1.x或更高版本中可用的功能,会发生什么?
对,它只是崩溃.
没有警告或指示器告诉您,某个功能仅在以后的iOS版本中可用.并且由于仿真器不支持版本< 4.0无法测试应用程序是否真的有效.您甚至无法购买新设备,因为他们已经安装了更新的iOS.
即使你有一台旧设备,有时几乎不可能检查代码的每一部分.
我真的需要支持旧版本,因为我知道我的客户(大约2/3)仍然使用3.x版本.
是不是有任何代码分析器或某些东西可以扫描应用程序中调用的所有函数的可用性?
在一个案例中,应用程序因为我打电话而崩溃
+ (id)sortDescriptorWithKey:(NSString *)key ascending:(BOOL)ascending
这是我的一个方便的方法
- (id)initWithKey:(NSString *)key ascending:(BOOL)ascending;
(另外它是自动释放的)
但sortDescriptorWithKey只能在4.0 @ _ @中使用
最佳答案 同样的问题在这里我唯一想到的将Project AND Target的Base SDK设置为3.0.然后编译器将检查您是否调用了一些不存在的方法.
但是扫描仪的问题仍然存在,因为上面的方法在使用ASI HTTP框架时会引发一些错误.所以我的程序是
>将SDK更改为3.0
>经历我自己的代码背后的错误
>将方法更改为3.0兼容
>将项目的Base SDK设置回
最新的SDK
您可能必须从以前的XCode版本安装SDK 3.0.并且无需将目标Base SDK设置回最新版本.我曾经将它设置为3.0并且没有从ASI HTTP获得错误.
//编辑:下载XCode 3.2.1:Snow Leopard和Leopard的链接