코드 : 오류와 [NSClassFromString(@"Test") gotoTest];
ARC 의미 론적 문제에 NSClassFromString() "은 알려진 바 없음 인스턴스 방법이 XXX :
사용 ARC :.
하지만 MRC에서
No known class method for selector 'gotoTest'
가 오류를 경고하지를
경고에서 ARC가 오류가 발생합니다. 참조 할 의향이 있습니까? 핵심적인 이유를 알고 싶습니다.
코드 : 오류와 [NSClassFromString(@"Test") gotoTest];
ARC 의미 론적 문제에 NSClassFromString() "은 알려진 바 없음 인스턴스 방법이 XXX :
사용 ARC :.
하지만 MRC에서 No known class method for selector 'gotoTest'
가 오류를 경고하지를
경고에서 ARC가 오류가 발생합니다. 참조 할 의향이 있습니까? 핵심적인 이유를 알고 싶습니다.
당신은 MRC에서 경고가 포함되지 않았다
Class method '+gotoTest' not found (return type defaults to 'id')
을 그리고 이것은 중요한 단서를 포함 - 컴파일러가 반환 형식를 찾고 있습니다. MRC에서는 id
으로 가정하고 결과를 객체 참조로 지정하게합니다. 만약 당신이 엉망이고 리턴 타입이 float
이라면, 아마 잘못 될 것입니다.
ARC에서 반환 값의 메모리 관리를 수행하는 컴파일러 작업이며 올바르게 수행하려면 해당 유형이 필요합니다. 따라서 반환 형식을 결정할 수 없으면 오류가 발생합니다.
코드 단편은 선택자가 인수를 취하지 않고 아무 값도 반환하지 않는다는 것을 알려줍니다. 따라서이를 선언하십시오. 이 메서드를 사용하는 클래스가없는 경우 다음과 같은 프로토콜을 사용할 수 있습니다.
@protocol GotoTest
+ (void) gotoTest;
@end
이됩니다. 이제 컴파일러는 형식을 알고 ARC로 코드를 컴파일합니다.
HTH