Bla*_*k20 23 cocoa-touch objective-c hashmap
我试图转换一段使用HashMap的Java代码,该HashMap包含一个对象作为键,一个值作为对象.
private static HashMap<Class<? extends Component>, ComponentType> componentTypes = new HashMap<Class<? extends Component>, ComponentType>();
我一直在阅读如何使用Obj-C做到这一点,但我没有成功,大多数人建议使用NSDictionary,问题是他们的键需要是字符串,我需要它们作为对象.另一个选项是NSMapTable,但它在iOS上不可用.有人能够协助我如何将其转换为obj-c等价物吗?
谢谢,
Jas*_*oco 23
一键的键NSDictionary不需要是字符串.它们可以是任何实现的对象NSCopying.但是,如果对象是自定义对象,则需要对-hash和-isEqual:消息生成合理的响应,但这与在Java集合中使用对象相同,因此它不应该是一个很大的挑战.
Mon*_*olo 17
的NSMutableDictionary(假设你还需要在其初始化后的字典中设置值)的作品在两个方面:
作为传统的字典/ hashmap,您可以在其中设置如下值:
[myDictionary setObject: theValue forKey: anyObject];
作为具有KVC兼容属性的对象,恰好是动态定义的:
[myDictionary setValue: theValue forKey: aString];
如果键是a NSString,则两者是可互换的,除了您不能将对象设置为nilwith setObject:forKey:,但您可以传递nil给setValue:forKey:.
你想用一个NSDictionary.你这么说
他们的键需要是字符串,我需要它们作为对象
一键NSDictionary不需要是字符串 - 它们可以是符合NSCopying协议的任何对象.
| 归档时间: | 
 | 
| 查看次数: | 29460 次 | 
| 最近记录: |