나는 다음과 같은 코드를 가지고 : "나는 변환하려면 어떻게캐스트 "CONST의 무효 *"을 "CONST 문자 *"
- (void)_loadData:(const char *)data;
:
NSData *data = [NSData dataWithContentsOfURL:objURL];
const void *buffer = [data bytes];
[self _loadData:buffer];
[data release];
는"_loadData는 "기능과 같은 인수를 취 const void "을 Objective-C의"const char "으로 변경 하시겠습니까?
[데이터 릴리스]; 라인은 불필요합니다. 가비지 수집이 아닌 환경에서는 응용 프로그램이 충돌하고 Cocoa 메모리 관리를 완전히 이해하지 못한다는 것을 보여줍니다. 명시 적으로 alloc, copy 또는 mutableCopy (아마도 지금은 생각할 수없는 다른 것)를 호출 한 경우에만 릴리스됩니다. [NSData dataWithContentsOfURL :]에서 반환 된 개체는 자동으로 해제되거나 가비지 수집됩니다. – dreamlax
가비지 컬렉션이없는 iPhone에서도! –
가비지 수집되지 않은 환경에서 객체는 자동 회수 풀에 추가되며 다음 이벤트 루프에서 할당 해제되거나 풀 자체가 할당 해제 될 가능성이 있습니다. 어쨌든, 반환 된 객체를 "소유"하지 않으므로 내가 의미하는 바를 아는 경우 릴리스하지 않아도됩니다. + alloc, -copy 또는 -mutableCopy (및 다른 것)를 통해 명시 적으로 할당 한 객체 만 소유합니다. – dreamlax