我编写了这个简单的代码来尝试新的 Objective-C 文字语法NSArray
s:
NSArray *array = @[@"foo"];
NSLog(@"%@", array[0]);
第一行工作正常,但下标会导致错误:
在“NSArray *”类型的对象上找不到读取数组元素的预期方法
只是想知道我是否做错了什么,或者文字是否尚未完全实现。我正在使用 Apple LLVM 4.0 进行编译并使用 iOS 5 SDK。
这也是错误的屏幕截图。
您必须使用 iOS 6 或 OS X 10.8 SDK 进行编译 - 否则 Foundation 对象没有用于文字语法的下标位的必要方法。* 特别是在这种情况下,下标期望objectAtIndexedSubscript:
由以下人员实施NSArray
,这是为了与此编译器功能交互而创建的新方法。不过,新语法中与对象创建有关的部分应该可以正常工作——我不认为这需要任何新方法。
进一步阅读:http://clang.llvm.org/docs/ObjectiveCLiterals.html http://clang.llvm.org/docs/ObjectiveCLiterals.html
*我的结论是基于 borrrden 进行的一些研究:https://stackoverflow.com/a/11407844/603977 https://stackoverflow.com/a/11407844/603977
I've gotten a lot of upvotes on this answer, which I really feel is founded on borrrden's. Please, if you think my answer is worth an upvote, click through and vote there too.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)