2017-11-03 10 views

답변

0

당신은 MRC에서 경고가 포함되지 않았다

Class method '+gotoTest' not found (return type defaults to 'id')

을 그리고 이것은 중요한 단서를 포함 - 컴파일러가 반환 형식를 찾고 있습니다. MRC에서는 id으로 가정하고 결과를 객체 참조로 지정하게합니다. 만약 당신이 엉망이고 리턴 타입이 float이라면, 아마 잘못 될 것입니다.

ARC에서 반환 값의 메모리 관리를 수행하는 컴파일러 작업이며 올바르게 수행하려면 해당 유형이 필요합니다. 따라서 반환 형식을 결정할 수 없으면 오류가 발생합니다.

코드 단편은 선택자가 인수를 취하지 않고 아무 값도 반환하지 않는다는 것을 알려줍니다. 따라서이를 선언하십시오. 이 메서드를 사용하는 클래스가없는 경우 다음과 같은 프로토콜을 사용할 수 있습니다.

@protocol GotoTest 
    + (void) gotoTest; 
@end 

이됩니다. 이제 컴파일러는 형식을 알고 ARC로 코드를 컴파일합니다.

HTH