在某些时候,我会像这样分配一个NSMutableData元素:
NSMutableData* data=[[NSMutableData alloc] initWithLength:0];
后来,我做了:
NSString *dataAsStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] ;
completeCommand = [NSString stringWithFormat:@"%@%@",
incompleteMessage,
[dataAsStr substringWithRange:NSMakeRange(startIndex, i-startIndex)]];
[incompleteMessage release];
incompleteMessage = nil;
[dataAsStr release];
最后我打电话给:
[data release]; //Here I get a BAD_ACCESS error since data gets a release count of -1
现在根据乐器(Zombie支持分配),第二个块的第一行NSString * dataAsString = ...调用[数据发布]
这发生在哪里?
答案 0 :(得分:0)
这个谜团已经解决了.. 它是一个相当大的方法,所以我没有意识到[数据发布];在一个循环中,它的malloc不是。这导致了僵尸。