新对象文字是否向后兼容iOS 5?

Ale*_*lin 9 objective-c ios ios5

我想弄清楚我是否应该开始使用最近添加的对象文字来订阅字典,数组等.以下帖子似乎表明iOS5不支持它们,我读到iOS6中添加了该功能.

是这样的吗?有没有人成功使用iOS5中的新文字?

rob*_*off 11

您可以在Apple的Objective-C功能可用性索引中找到有关哪些版本的iOS(和OS X)支持哪些现代Objective-C功能的详细信息.

NSNumber,NSDictionary和NSArray文字(例如@{ @"key": @"value" })可以部署到每个 iOS版本,包括iOS 5.

NSDictionary和NSArray下标运算符(例如myArray[7]myDictionary[@"hello"])可以部署到iOS 5.0及更高版本.


Bol*_*ock 10

如果您使用Xcode 4.5来构建源代码,那么是的,只要您使用最新的LLVM编译器并且您针对iOS SDK 6.0构建,它们就与iOS 5兼容.

  • @glitch:有两个主要组件:iOS SDK版本和iOS部署目标版本.您构建的SDK版本决定了您可以在笔尖,故事板和代码中实际使用的功能.部署目标是您希望应用程序在其上运行的iOS(最低)版本.iOS 6中的一些新功能在iOS 5上不起作用,例如自动布局,但是其他功能如Objective-C文字虽然是iOS SDK 6的新功能,但它们是编译器功能,因此只要您拥有最新的编译器您可以构建它们以在早于SDK的iOS版本上运行,只要您部署它们即可. (4认同)
  • @glitch:所以在这种情况下,如果你将项目的Base SDK设置为最新iOS(6.0)并将其部署目标设置为iOS 5.0,则可以编译Obj-C文字,同时还具有在iOS 5.0上运行的额外好处. (2认同)
  • 不,它不会警告你,但有一种方法可以让它来警告你.请参阅我的回答:http://stackoverflow.com/a/12633309/1155387 (2认同)