2009-10-24 3 views
1

내 프로그램에서 다음 코드 단편에 괴롭힘.프로그램에서 alloc-init이 실패하는 경우가 있음

내가

mo=[[myObj alloc] init]; 

를 작성하는 경우는 실패,하지만 난

mo=[myObj alloc]; 
mo=[mo init]; 

를 작성하는 경우가 작동합니다. 이 두 가지 방법은 동등한 것으로 여겨지지만 어쨌든 나는 엉망입니다. 어떤 빛 이니?

부연 설명 :

myObj로 그것은, 객체의 다른 종류를 위해 할당하려고 올바른 방법을 찾기 위해 실패하고 마침내까지 초기화에서 엿 의해 실패 클래스

의 이름입니다.

+3

myObj는 클래스 이름입니까? 공통적 인 누비 실수는 alloc의 인스턴스 이름을 넣는 것입니다. 그것은 커스텀 클래스입니까, 아니면 파운데이션 클래스에서 같은 문제가 발생합니까? 어떤 오류가 반환 되나요? – TechZen

+3

어떤 방법으로 실패합니까? 즉 첫 번째 방법과 두 번째 방법 사이에서 프로그램에서 다르게 발생하는 것은 무엇입니까? –

+0

동의. 어떻게 실패했는지에 대한 자세한 정보를 제공해야합니다. –

답변

3

메서드가 myObj 클래스에서 잘못 덮어 쓰여진 경우에만 발생한다고 생각합니다. 어쩌면 return self;이 아니거나 반환 유형 (id)이없는 것일 수 있습니다. 이 중 어느 것도 맞지 않으면 -(id)init 메서드가 구현 된 방법에 대한 자세한 내용을 제공하십시오.

+0

+1. 이것은 한 가지 경우에만 실패하는 이유에 대한 좋은 추측처럼 들립니다. 좋은 생각! –

관련 문제