mjh*_*mjh 5 syntax objective-c objective-c-category
我正在NSMapTableiOS 6项目中的许多地方使用,并希望能够使用新的字典下标样式来访问对象.(NSMapTable表现最像是一个NSMutableDictionary,但可以为它存储的键和值配置各种内存管理选项.此StackOverflow问题的更多背景.)
尝试在NSMapTable实例上使用下标语法时,编译器会报告此情况:
读取未在"NSMapTable*"类型的对象上找到的字典元素的预期方法.
如何使用类别扩展NSMapTable以允许新式NSDictionary下标?
答案其实很简单;有关如何实现订阅的更多信息,请参阅此问题。添加一个这样的类别。
标题:
@interface NSMapTable (Subscripting)
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key;
- (id)objectForKeyedSubscript:(id)key;
@end
Run Code Online (Sandbox Code Playgroud)
执行:
@implementation NSMapTable (Subscripting)
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key {
[self setObject:obj forKey:key];
}
- (id)objectForKeyedSubscript:(id)key {
return [self objectForKey:key];
}
@end
Run Code Online (Sandbox Code Playgroud)
这让我暂时想知道,在某些或所有情况下,下标访问是否实际上比替代方案慢一点,但“过早优化”一词使这种想法变得无关紧要。
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |