gpt4 book ai didi

iphone - 当同步访问对象时,是什么导致对象 [0] 处出现 nil 对象?

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:26 26 4
gpt4 key购买 nike

调用 [self.sessions allValues] 时出现以下异常。在我们使用 session 的任何地方,我们也在锁定对象互斥锁上同步。什么会导致这个异常?

[NSArray initWithObjects:count:]:尝试在 objects[0] 处插入 nil 对象

0   CoreFoundation 0x334ff987 __exceptionPreprocess + 114
1 libobjc.A.dylib 0x331b449d objc_exception_throw + 24
2 CoreFoundation 0x33487bf7 -[__NSPlaceholderArray initWithObjects:count:] + 270
3 CoreFoundation 0x3349730d +[NSArray arrayWithObjects:count:] + 32
4 CoreFoundation 0x334a16e7 -[NSDictionary allValues] + 282

@synchronized (mutex) {
if (!self.sessions) {
return [NSArray array];
}

NSMutableArray* activeSessions = [[NSMutableArray alloc] init];


for (id<AccountSession> session in [self.sessions allValues]) {
if (session) {
[activeSessions addObject:session];
}
}

return [activeSessions autorelease];
}

最佳答案

一个猜测是:

您的 session 字典包含键/值(= session 实例)。在将它们添加到字典时,键和值将被保留。如果添加到字典的 session 实例存在内存问题 - 例如它不小心被过度释放——你可能会得到一个无效的 session 实例,最终导致异常。因此,您应该检查 session 对象的内存管理。

关于iphone - 当同步访问对象时,是什么导致对象 [0] 处出现 nil 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6951299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com