실패하지만 오류 객체는 반환되지 않습니다. 왜요?
-
13-09-2019 - |
문제
나는 반환 된 가치의 의미를 이해하려고 노력하고있다. nsdata writeTofile : 옵션 : 오류 :. 이 메소드는 BOOL을 반환합니다. Apple의 문서에 따르면 "작업이 성공하면 예, 그렇지 않으면 아니오"입니다.
충분히 공정하지만, 그렇지 않은 경우, 오류 매개 변수가 검색 가능한 nserror* 값으로 설정 될 것이라고 가정했을 것입니다. 그러나 내가 나오는 결과에서는 그렇지 않습니다. 따라서 나는 다소 혼란스러워서 실패의 원인을 결정하는 방법을 모른다.
재치에 따르면이 코드는 다음과 같습니다.
NSError* error = nil;
BOOL success = [data writeToFile: filePath error: &error];
if ( error )
NSLog( @"error = %@", [error description] );
success
로 밝혀지다 NO
코드에서는 실행 중입니다 NSLog
진술은 결코 실행되지 않습니다. 어떻게 되나요?
하워드
해결책
가능합니다 data
~이다 nil
, 어떤 경우 [data writeToFile:error:]
보고 nil
, 하지만 *error
설정되지 않았습니다.
다른 팁
writetofile 메소드는 성공에 대해 사실을 반환하고 실패에 대한 거짓 -실제로 확인하고 싶은 것입니다.
그래서 시도하십시오 :
if(!success)
if (error) 대신 조건부로.
제휴하지 않습니다 StackOverflow