[英]NSNumbers being added as values to NSMutableDictionary become nulls
我有一段代码可以将对象的字典构造为键,而将操作代码(例如添加/更新/删除)构造为值。
最近,无论是使用iOS 6还是随着“ zee Germans”的到来,它都崩溃了。 值是构造的,偶尔会添加,但是大多数时候,我会得到一个充满(空)值的字典。
for (int i = 0; i < newArray.count; i++)
{
if (![oldArray containsObject:[newArray objectAtIndex:i]])
{
NSNumber *opNumber = [NSNumber numberWithInt:(int)kInsertOperation];
[_operationsForRows setObject:opNumber forKey:[newArray objectAtIndex:i]];
}
else ...
}
我已经用中间变量和将枚举值显式转换为int修饰了代码,并且变得更加困惑。 打印出结果字典可得到:
{
"<Order: 0x8aad980>" = (null);
"<Order: 0x8aad7a0>" = (null);
}
谁能解释,我在这里想念什么? 字典甚至不应该包含null,应该吗?
此代码在ARC下。
NSMutableDictionary已在主线程上初始化,但仅在单个辅助线程上使用。
有时,可以正确添加一两个对象。 说10% 从那以后我尝试过的是:
哭泣,哭泣...看起来像整个地方的重写。
尝试使用NSMutableDictionary而不是NSDictionary。
两者之间的区别在于,您可以在初始化之后修改NSMutableDictionary
,而设置NSDictionary
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.