1

ある時点で、次のように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

インスツルメント(ゾンビをサポートする割り当て)によると、2番目のブロックの最初の行NSString * dataAsString=...は[データリリース]を呼び出します

それはどこで起こりますか?

4

1 に答える 1

0

ミステリーは解決しました。かなり大きな方法なので、[データリリース]に気づきませんでした。ループ内にあり、その割り当てはそうではありませんでした。それがゾンビを引き起こしていました。

于 2011-01-07T10:12:24.557 に答える