2012-12-21 24 views
8

użyłem ASIHTTPRequest w moim projekcie, ale w pliku ASIDataCompressor.m linia 190:Ostrzeżenie: Porównanie stałego 8 z ekspresją typu XXXX jest zawsze fałszywy

if ([inputStream streamStatus] == NSStreamEventErrorOccurred) { 
     if (err) { 
      *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Compression of %@ failed because we were unable to write to the destination data file at %@",sourcePath,destinationPath],NSLocalizedDescriptionKey,[outputStream streamError],NSUnderlyingErrorKey,nil]]; 
     } 
     [compressor closeStream]; 
     return NO; 
    } 

to ostrzeżenie mi to:

Warning

Ktoś wie, jak to naprawić? thx

Odpowiedz

17

(NSStreamStatus)NSStreamEventErrorOccurred

edit

Prawdopodobnie poprawny sposób obsłużyć to jest zastąpienie NSStreamEventErrorOccurred z NSStreamStatusError. Prawdopodobnie to właśnie zamierzał autor ASIHTTP.

+0

proste i wydajne! – yellow

+0

naprawdę, jest to prawdopodobnie słabe API ze strony ASIHTTP. Ponadto, jeśli jest to nowy projekt, wiem, że ASIHTTP został przestarzały przez autora, więc warto rozważyć alternatywne rozwiązania, takie jak AFNetwork. ASIHTTP jest jednak w pełni funkcjonalny. – nielsbot

+0

dziękuję, spróbuję użyć AFNetwork.https: //github.com/AFNetworking/AFNetworking – yellow

6

NSStreamEventErrorOccurred jest typu NSStreamEvent o stałej wartości 8. Metoda streamStatus zwraca wartości NSStreamStatus, a nie NSStreamEvent i NSStreamStatus wartości nie przekraczają wartości 7. Z tego powodu wystąpił błąd. Miałeś szczęście, że 8 przekroczyło granice i dostałeś błąd, ponieważ nie zawsze tak jest, dlatego powinieneś zawsze zachować ostrożność w odniesieniu do typu zwrotu.

+0

Dziękuję, daj mi znać, jak to działa. – yellow

+0

* i wartości NSStreamStatus nie przekraczają wartości 7 <* - Ach, to jest problem dla mnie. Xcode, teraz bardzo Swifty, wyświetla ostrzeżenie tak, jakby enum był wyczerpujący. Ale API Objective-C szczęśliwie zwraca wyniki, które wykraczają poza zakres deklarowanego wyliczenia publicznego. W moim przypadku jest to 'NSEventSubtype'. – pkamb