먼저 ARC를 사용한다고 말하면서 retain은 옵션이 아닙니다. 객체의 클래스는 NSViewController 유형이며 여러 개의 텍스트 필드와 버튼뿐만 아니라 두 개의 NSTimer가 있습니다. 이상한 점은 두 타이머가 무효화되면 객체가 출시되는 것처럼 보입니다. 때로는 일시 중지하거나 다시 시작하기 때문에 문제가 발생합니다. 즉, 해당 항목을 무효화해야한다는 의미이므로 참조가 손실되고 개체에 대한 모든 메시지가 EXC BAD ACCESS를 throw합니다.코코아 : 객체가 자동으로 리사이징되지 않아야 할 때
메모리 관리 나 ARC에 익숙하지 않지만 타이머에만 의존하여 참조가 손실되는 이유는 무엇입니까? 내 말은, 그들이 무효화되었다고해서 더 이상 물건이 필요 없다는 의미는 아닙니다.
타이머를 인스턴스 변수 및 속성으로 선언했지만 아무것도 변경하지 않았습니다.
두 개의 타이머가 무효화 되더라도 참조가 유지되지 않도록해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
"위임"이 아니라 "대상"을 의미합니다. –
유망한 소리. 그래서 내 다른 클래스 (이 개체를 만드는 하나의) 헤더 파일에이 개체에 대한 선언이 있어야합니까? 그리고 내가 그것을 강한 재산으로 만들기 위해 어떤 임무를 사용해야합니까? – Elbimio
@ Francis McGrew 아직 문제가 있습니다. 나는 클래스를 (비 원자력, 강한) 속성으로 선언했다. 문제는 클래스의 여러 인스턴스가 필요하며 두 번째 인스턴스를 만들 때 이전에 만든 NSTimer를 다시 시작하면 잘못된 액세스가 throw됩니다. 나는 두 번째 것이 첫 번째 것 또는 어떤 것을 덮어 씌우고 있다고 생각하지만 그들은 독립적이라고 생각합니다. – Elbimio