2012-06-12 6 views
0

으로 허용되지 않습니다, 나는 하나의 오류가 발생했습니다 그것의 반환 유형 유형 NSData의 비록 엑스 코드이 오류에 대한 언급되는 기능은 NO 또는 nil을 반환 :암시 적 변환 아크

- (NSData *)compressBytes:(Bytef *)bytes length:(NSUInteger)length error:(NSError **)err shouldFinish:(BOOL)shouldFinish 
    { 
     if (length == 0) return nil; 
     int status; 
      if (status == myVariable) { 
      break; 
     } else if (status != y_OK) { 
     if (err) { 
      *err = [[self class] deflateErrorWithCode:status]; 
     } 
     return NO; 
    } 

그러나, 나는 그 문제를 해결하는 방법을 알고 매우 확실하지 않다, 어떤 생각을 이해할 수있을 것이다.

답변

0

그냥하지 마세요. NO는 어떤 의미에서는 해당 함수에 대한 유효한 반환 값이 아닙니다. ARC 전에 코드가 손상되었지만 이제는 여전히 손상되었습니다. 또한

,이 라인 :

int status; 
    if (status == myVariable) { 
     break; 
    } 

다음과 완전히 동일합니다 정말 혼란 방식으로 작성하고, ARC에 의존하는 상태를 초기화 제외

if (myVariable == nil) { 
    break; 
} 

. 나는 그것이 당신이 원하는 것이 아니라고 확신합니다.

기본적으로이 방법은 완전히 잘못되었습니다.

+0

이 코드는 조각 인 것처럼 보입니다.이 코드는 혼란 스러울 수 있습니다. –

2

ARC에서는 객체 또는 무를 반환 할 수 있습니다. 기간.

이것은 ARC가 필요로하기 때문 만이 아니라 포인터가 객체를 가리 키거나 아무 것도 가리 키지 않는 것을 나타냅니다.

포인터에 NO (0 값)를 채우려고하기 때문에 ARC에 적합합니다. 이것은 규칙을 위반하므로 오류가 발생하는 것입니다.

a) 유효한 반환 값이 무엇인지 알 수 없기 때문에 해결할 수 없습니다 (이유는 무엇입니까? 왜 사용하지 않으시겠습니까?). 이것이 코드 조각 인 것처럼 보이므로 여러분을 도울 수 없습니다. 죄송합니다.