2012-12-21 13 views
8

ho usato ASIHTTPRequest nel mio progetto, ma nel file ASIDataCompressor.m linea 190:Attenzione: Confronto di costante 8 con l'espressione di tipo XXXX è sempre false

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; 
    } 

me attenzione questo:

Warning

Qualcuno sa come risolverlo? thx

risposta

17

(NSStreamStatus)NSStreamEventErrorOccurred

modificare

Probabilmente il modo corretto per gestire questa situazione è quello di sostituire il NSStreamEventErrorOccurred con NSStreamStatusError. Questo è probabilmente ciò che l'autore di ASIHTTP ha inteso.

+0

semplice e potente! – yellow

+0

in realtà, questa è probabilmente API scadente da parte di ASIHTTP. Inoltre, se questo è un nuovo progetto, so che ASIHTTP è stato reso obsoleto dall'autore, quindi potresti prendere in considerazione alternative, come AFNetwork. ASIHTTP è davvero pieno di funzionalità, tuttavia. – nielsbot

+0

grazie, proverò ad utilizzare AFNetwork.https: //github.com/AFNetworking/AFNetworking – yellow

6

NSStreamEventErrorOccurred è di tipo NSStreamEvent con un valore costante di 8. Il metodo streamStatus restituisce un valore NSStreamStatus non NSStreamEvent e NSStreamStatus non supera un valore di 7 ed è per questo che si è verificato l'errore. Sei stato fortunato che 8 ha superato i limiti e hai ricevuto un errore perché non è sempre il caso, quindi dovresti sempre essere cauto con il tipo di ritorno.

+0

grazie, fammi sapere come funziona. – yellow

+0

*> e i valori NSStreamStatus non superano il valore di 7 <* - Ah, questo è il problema per me. Xcode, ora molto Swifty, sta visualizzando l'avviso come se l'enum fosse esaustivo. Ma l'API Objective-C restituisce felicemente risultati che non rientrano nel range dell'enumerazione pubblica dichiarata. Nel mio caso è 'NSEventSubtype'. – pkamb