2014-07-14 2 views
1

저는 Objective C 프로그래밍을 처음 접했습니다. 어떤 이유로 화살표 아래에 표시된 줄은 나에게 "ARC가 '해제'메시지를 명시 적으로 전송하는 것을 금지합니다. 누군가 내가 여기서 잘못하고있는 것을 설명해 주시겠습니까?ARC Forbids 'Release'의 명시적인 메시지 보내기

int main(int argc, char *argv[]) { 
    @autoreleasepool { 
     Person *morgy; 
     morgy = [Person alloc]; 
     morgy = [morgy init]; 

     [morgy setWeight: 145]; 
     [morgy setAge: 19]; 
     [morgy print]; 
     [morgy release]; // <------ 
    } 

    return 0; 
} 
+1

해당 행을 제거하십시오. 작업 완료. 다음 것! – trojanfoe

+0

@trojanfoe하지만 출력 결과가 "lldb"가됩니다. – Vimzy

+0

다른 문제입니다. – trojanfoe

답변

1

ARC는 자동 참조 카운팅입니다. 아무것도 보관하지 않으면 자동으로 객체가 해제됩니다. 그것을 명백하게 발표하면 목적을 깨고 전체 엔진을 파괴 할 것입니다. 따라서, 허용되지 않습니다.

단순히 줄을 삭제하면 ARC에 필요하지 않습니다.

+0

제거했지만 출력은 "lldb"만 생성합니다. – Vimzy