ios - 为什么 NSMapTable 抛出异常 "count underflow"?

标签 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"
    }

请帮助我,谢谢并期待您的答复。

最佳答案

实际上,您正在传递对对象的引用,

像这样:

NSMapTable *mapTableView = [self.mapTableView mutableCopy];

关于ios - 为什么 NSMapTable 抛出异常 "count underflow"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35477673/

相关文章:

ios - 如何在 iOS 上生成随机数?

iphone - 如何通过 Objective-c 访问 iPhone 文件?

ios - 如何从数组中只获取一种类型的对象?

ios - 从周数获取日期,部分标题数为周数

ios - 从 UIImage 访问地理位置

ios - Firebase iOS - 类型 'LoginViewController' 不符合协议(protocol) 'FUIAuthDelegate'

c++ - 如何使用 Box2d 获取一个或多个碰撞点?

android - 在 iOS 和 Android 上处理推送通知场景

ios - 点击UiButton时如何解决Bad access thread?

ios - UISwipeGestureRecognizer 在不应该执行的情况下在 if/else 语句中执行