fuz*_*oat 6 objective-c nsdictionary objective-c-literals
我刚刚意识到我可以NSDictionary使用objectForKey:和dict [key]访问?
NSDictionary *coordsDict = @{@"xpos": @5.0, @"ypos": @7.2, @"zpos": @15.7};
NSLog(@"XPOS: %@", coordsDict[@"xpos"]);
NSLog(@"XPOS: %@", [coordsDict objectForKey:@"xpos"]);
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我,这一直是否一直向我隐瞒,或者是否有一些最新的语言变化?
编辑:这个问题一般不会引用新的字符串文字,但更具体地说是使用与NSArray相同的字符串文字语法来访问NSDictionary.我显然忽略了这一点,只是想检查何时添加了这个特定的语法.
Adi*_*yam 13
这是Xcode 4.4+的新增功能,依赖于Apple的LLVM + Clang编译器.这是一个新功能:)数组也可以使用相同的表示法访问:myObjectArray[4].
如果您有兴趣将这个新功能添加到您自己的类(称为下标),可以使用以下几种方法:
@interface NSArray(Subscripting)
- (id)objectAtIndexedSubscript:(NSUInteger)index;
@end
@interface NSMutableArray(Subscripting)
- (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)index;
@end
@interface NSDictionary(Subscripting)
- (id)objectForKeyedSubscript:(id)key;
@end
@interface NSMutableDictionary(Subscripting)
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key;
@end
Run Code Online (Sandbox Code Playgroud)
如果您在自己的类上实现任何这些方法,则可以对它们进行下标.这也是您可以将此功能添加到OS X 10.7的方法!
| 归档时间: |
|
| 查看次数: |
7409 次 |
| 最近记录: |