1

可能重复:
Objective-C 字典插入 BOOL

我需要将键值对 NSIndexPath -> BOOL 添加到 NSMutableDictionary。我该怎么做?这对我来说真的是个问题。我既不能使用setValue forKey(因为 key 只能是 NSString)也不能使用setObject forKey(因为 BOOL 是原始的,我[NSNumber numberWithBool:YES]也不能使用,因为 NSNumber 是不可变的,我需要更改 BOOL 值)。

所以问题是如何添加这样一个具有所有限制的键值对。有任何想法吗?

4

2 回答 2

3

NSNumber按照此答案中的建议将 BOOL 包装在 a中: Objective-C dictionary inserting a BOOL

于 2013-01-28T15:14:52.363 回答
0

字典必须包含对象。没有办法解决这个问题。您可以执行此操作的一种方法是为您需要操作的 BOOL 创建自定义 getter 和 setter 方法,以便它获取和更新字典中的值而不是属性中的值。或者,如果您需要保留属性引用,则需要使用 KVO 来保持这两个值同步,但这听起来像是一种反模式。如果您更详细地描述您的用例可能会有所帮助,但我认为这是您的两个选择。

于 2013-01-28T15:15:07.593 回答