gpt4 book ai didi

objective-c - iOS 6 中 NSMapTable 的下标语法

转载 作者:太空狗 更新时间:2023-10-30 03:51:17 27 4
gpt4 key购买 nike

我在 iOS 6 项目的许多地方使用了 NSMapTable,并且希望能够使用新的字典下标样式来访问对象。 (NSMapTable 的行为主要类似于 NSMutableDictionary,但可以为其存储的键和值配置各种内存管理选项。更多背景信息请参见 this StackOverflow question。)

当尝试在 NSMapTable 实例上使用下标语法时,编译器会报告:

Expected method to read dictionary element not found on object of type 'NSMapTable *'.

如何使用类别扩展 NSMapTable 以允许新的 NSDictionary 样式下标?

最佳答案

答案其实很简单;见this question有关如何实现订阅的更多信息。添加这样的类别。

标题:

@interface NSMapTable (Subscripting)

- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key;
- (id)objectForKeyedSubscript:(id)key;

@end

实现:

@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

这让我想知道,在某些或所有情况下,下标访问是否实际上比替代方案慢一点点,但“过早优化”这个词让这个想法变得无关紧要。

关于objective-c - iOS 6 中 NSMapTable 的下标语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13149740/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com