Geo*_*een 24 objective-c nsarray shorthand ios
我最近注意到一些奇怪的东西似乎在objective-c中起作用.
当我有一个阵列,
NSArray *myArray = @[@"1", @"b", @"3", @"d"];
Run Code Online (Sandbox Code Playgroud)
我通常可以访问第二个元素,
NSString *element = [myArray objectAtIndex:1]; // second element
Run Code Online (Sandbox Code Playgroud)
但是我现在似乎也可以通过它访问它.
NSString *element = myArray[1];
Run Code Online (Sandbox Code Playgroud)
有谁知道这现在是一个定义的行为,因此可以安全使用,还是应该避免它?感谢任何能提供帮助的人!!
Ada*_*ght 29
在Clang 3.3中添加了这种语法:Objective C Literals.实质上,编译器将类型objCObj[idx]的表达式转换为表达式[objCObj objectAtIndexedSubscript:idx].它也适用于字典,您可以自由地将它用于自己的对象.
因此,假设您将使用现代版本的Objective C和适当更新的Objective C编译器(即Clang),那么使用它是完全安全的.
| 归档时间: |
|
| 查看次数: |
16809 次 |
| 最近记录: |