我有一个预处理命令来检测iOS版本并支持iCloud。 我想知道是否可以使用以下宏:
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000
//stuff
#endif
如果某人使用iOS 4.x从应用商店下载应用程序,但它是在/为iOS 5.x编译的,这是否有效。
由于这将在编译时进行评估,因此应用程序是在设备上编译还是如何工作的? 是否有更好的方法获得相同的结果?
我有一个预处理命令来检测iOS版本并支持iCloud。 我想知道是否可以使用以下宏:
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000
//stuff
#endif
如果某人使用iOS 4.x从应用商店下载应用程序,但它是在/为iOS 5.x编译的,这是否有效。
由于这将在编译时进行评估,因此应用程序是在设备上编译还是如何工作的? 是否有更好的方法获得相同的结果?
if ([[NSFileManager defaultManager] respondsToSelector:@selector(isUbiquitousItemAtURL:)])
{
// call it and do other iCloud stuff
}
关于您关于编译的问题,这里有一个简短的跟进说明。编译是将您的实际代码转换为在设备上运行的二进制代码的过程。这个过程发生在您在Xcode中进行构建时,仅在您的计算机上进行,从不在苹果公司或设备上进行。这就是为什么版本号的编译时检查不起作用的原因 - 当您将其发送到设备时,决策已经被做出。