현재 외부 회사에서 개발 한 프로젝트를 개선하기 위해 노력하고 있습니다. 나는 아직 IOS 개발의 학습 단계에 있으므로 프로젝트가 끝날 때 상처를 입히지 않고 처음부터 올바르게 일을하고 싶습니다. 나는 프로젝트에서 Analyze를 실행 중이고 다음 코드 블록에서 166 행에 할당되고 'commandToSend'에 저장된 객체의 누출 가능성을 확인합니다.함수에서 반환하는 NSMutableData를 사용한 릴리스 이해
-(NSData*)GetBusinessCodeBase64:(NSString*)strBusiCode{
NSArray *tmp_arr = [strBusiCode componentsSeparatedByString:@"-"];
NSMutableData *commandToSend= [[NSMutableData alloc] init];
unsigned char whole_byte;
char byte_chars[3] = {'\0','\0','\0'};
int i;
for (i=0; i < [tmp_arr count]; i++) {
byte_chars[0] = [[tmp_arr objectAtIndex:i] characterAtIndex:0];
byte_chars[1] = [[tmp_arr objectAtIndex:i] characterAtIndex:1];
whole_byte = strtol(byte_chars, NULL, 16);
[commandToSend appendBytes:&whole_byte length:1];
}
//NSData *result = [NSData dataWithData:commandToSend];
//[commandToSend release];
//return result;
return commandToSend;
}
내이의 조사는이 함수에 대한 호출이있는 NSData *이 반환되고 싶어한다는 것입니다. 그래서 나는 commandToSend의 직접 반환 대신에
NSData *result = [NSData dataWithData:commandToSend];
[commandToSend release];
return result;
대신에 보았습니다.
누출없이 NSMutableData 객체를 반환하는 올바른 방법인가요? 아니면이 작업을 수행하는 다른 방법이 있습니까?