为什么NSMapTable会抛出异常"计算下溢"?

时间:2016-02-18 09:36:22

标签: ios objective-c

我有一个弱到强NSMapTable。当我尝试拨打removeObjectForKey:method我的应用程序崩溃时。

代码如下: self.requestedObjectMap是弱到强NSMapTable

NSUInteger countBefore = [self.requestedObjectMap count];
[self.requestedObjectMap removeObjectForKey:object];
NSUInteger countAfter = [self.requestedObjectMap count];

堆栈如下:如何触发此异常" [NSMapTable NSMapTable {\ n} \ n]计数下溢"吗

"signal": {
        "signal": 6,
        "name": "SIGABRT",
        "code": 0
    },
    "address": 0,
    "reason": "*** -[NSMapTable NSMapTable {\n}\n] count underflow",
    "type": "nsexception",
    "nsexception": {
        "name": "NSInternalInconsistencyException"
    }

请帮助我,谢谢并期待你的答案。

1 个答案:

答案 0 :(得分:5)

实际上你正在将引用传递给你的对象,

就这样:

NSMapTable *mapTableView = [self.mapTableView mutableCopy];