プロジェクトをARCに変換し、リークインスツルメントではこの機能にリークとして繰り返しタグが付けられます。ARCリーク機能
私は、objc_releaseはおそらく解決策だと思っていましたが、xCodeはそれを好まないと思いました。関数内で呼び出さ
- (int)getNumber{
int result = 0;
unsigned char *myBytes = (unsigned char *)malloc(sizeof(char));
[stream getBytes:myBytes range:NSMakeRange(0, sizeof(char))];
char tag = myBytes[0];
if((int)tag >= 0){
result = (int)tag - 64;
}
else if ((int)tag == -64) {
[self removeChar];
result = [self getInt];
}
else
{
[self removeChar];
unsigned char *byteTwo = (unsigned char *)malloc(sizeof(char));
[stream getBytes:byteTwo range:NSMakeRange(0, sizeof(char))];
char twoTag = byteTwo[0];
result =
((((int)tag & 0x03f) << 8) |
(twoTag & 0x0ff)) ;
result -= 8192;
}
return result;
}
二つの機能は
- (void)removeChar{
[stream replaceBytesInRange:NSMakeRange(0, 1) withBytes:NULL length:0];
}
と
- (int)getInt{
NSRange intRange = NSMakeRange(0,3);
char buffer[4];
[stream getBytes:buffer length:4];
[stream replaceBytesInRange:intRange withBytes:NULL length:0];
return (int) (
(((int)buffer[0] & 0xff) << 24) |
(((int)buffer[1] & 0xff) << 16) |
(((int)buffer[2] & 0xff) << 8) |
((int)buffer[3] & 0xff));
}あります
'malloc'は' free'ですか?それは漏れのように見える...しかし、おそらく私は理解していないことが起こっている何かがあります。スタティック・アナライザは何を表していますか? – matt