我收到此錯誤:NSArray countByEnumeratingWithState發送到解除分配的實例
沒有堆棧跟蹤。
-[__NSArrayI countByEnumeratingWithState:objects:count:]: message sent to deallocated instance
什麼會調用這個方法?
是否可以確定這是什麼?我有殭屍,但沒有看到來電者。
這裏的線程1:
唯一的其他可點擊行都是這樣從AFNetworking([runloop run]
)。我剛剛升級了我的AFNetworking吊艙。
+ (void)networkRequestThreadEntryPoint:(id)__unused object {
@autoreleasepool {
[[NSThread currentThread] setName:@"AFNetworking"];
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode];
[runLoop run];
}
}
編輯:@autoreleasepool
上面的斷點沒有被擊中。我發現這在我在另一個線程死機一樣的代碼(沒有看到這最後一次):,在archiveSuccessful = line
- (void)archiveContent:(BOOL)changeNotification userInfo:(NSDictionary *)userInfo {
BOOL archiveSuccessful;
@synchronized(self) {
archiveSuccessful = [NSKeyedArchiver archiveRootObject:self.contentDictionary toFile:self.filePath];
}
if (archiveSuccessful) {
if(changeNotification && self.contentChangedNotificationName) {
[[NSNotificationCenter defaultCenter] postNotificationName:self.contentChangedNotificationName object:nil userInfo:userInfo];
}
} else {
NSAssert(NO, @"Saving archive to %@ was not successful", self.filePath);
}
}
這是通過從
- (void)addObjects:(NSArray *)objects changeNotification:(BOOL)changeNotification {
[objects enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if([obj conformsToProtocol:NSProtocolFromString(@"DRLocalObject")]) {
[self addObject:obj changeNotification:NO];
}
}];
調試打印稱爲[self addObject...
線
(lldb) po obj
0x00007fde0ff56770
(lldb) po 0x00007fde0ff56770
140591727208304
編輯:
threadMain:
從Google分析中調用。一個項目找到&快開顯示沒有命名的選擇threadMain:
當您在數組上進行快速枚舉時會調用這個函數。 – rdelmar 2014-11-20 22:36:53
在for(myArray中的myobject * f)?我可以在項目中搜索哪些代碼以找到它? – quantumpotato 2014-11-20 22:37:58
您是否添加了異常斷點以查看它是否確定了違規行? – rdelmar 2014-11-20 22:40:46