하나의 변경 가능한 문자열 객체를 만듭니다. 이제는 한 번만 할당했지만 개체를 여러 번 릴리스했습니다. 기본적인 메모리 관리 규칙에 따르면 이것은 잘못된 것입니다. 그러나 충돌이 발생해야하지만 결코 발생하지 않습니다. 일부 EXC_BAD_ACCESS 오류가 예상됩니다. 응용 프로그램이 충돌하지 않는 이유는왜 EXC_BAD_ACCESS가 발생하지 않습니까?
malloc: *** error for object 0x6d5ac60: double free
*** set a breakpoint in malloc_error_break to debug
:
나는 오류를 받았다?NSMutableString *firstOwner = [[NSMutableString alloc] init];
[firstOwner release];
[firstOwner release];
[firstOwner release];
NSMutableString *temporaryObject = firstOwner;
[temporaryObject release];
[temporaryObject release];
더 이상 메모리 블록이 필요 없다고 메모리 관리 시스템에 알 렸습니다. 그 후에 다른 용도로 사용하거나 사용하지 않을 수도 있습니다. 충돌을 일으키는 값으로 설정된다는 보장은 없습니다. –