그래서 NSError 개체에 대한 포인터를 메서드에 전달하는 곳에서 일반적인 작업을 수행하고 있습니다. 그것은 단순하게 사용 :iOS __autoreleasing const 오류
-(BOOL)foo:(NSString *)string error:(NSError **)error
하지만 ARC으로는 지금 : 그래서
-(BOOL)foo:(NSString *)string error:(NSError *__autoreleasing *)error
내가 변수가있는 경우 :
NSError *error = nil;
및 시도 :
[foo:@"a string" error:&error];
을
오류가 발생합니다 :
Sending 'NSError const __strong*' to parameter of type 'NSError *__autoreleasing*' changes retain/release properties of pointer.
컴파일러가 처리 할만한 인상을 받았지만 괜찮습니다. 그래서 오류합니다
__autoreleasing NSError *error = nil;
을 나는 경고 얻을 :
이Sending 'NSError *__autoreleasing const *' to parameter of type 'NSError *__autoreleasing*' discards qualifier
그래서 내 진짜 문제는 내 NSError CONST 이유입니다을? 그리고 다음 질문은 어떻게 해결할 수 있을까요? 이것은 매우 기본적인 상황입니다. ARC를 사용하면이 문제를 처리하는 방법을 모르겠습니다.
이 기괴한입니다. 그것은 내가 이것을하게하지 않을 것입니다. 비록 매개 변수 이름을 다른 것으로 변경하더라도 NSError 포인터가 들어오는 것을 보게되면 허용하지 않고 원래 오류를 제공합니다. – mickm
인터페이스와 구현이 변경되었습니다. 맞습니까? 지금 샘플 프로젝트에서 테스트 해 보겠습니다 ... –
방금 비슷한 프로젝트를 만들었고 잘 작동합니다. 어떻게 든 나는 무엇인가 놓치고 있어야한다. 그러나 나는 그것이 무엇인지 알지 못한다. 나는 좀 더 보게 될 것이다. 오, 나는 __autoreleasing도 사용하지 않았고 여전히 오류없이 컴파일했다. – mickm