2013-08-05 9 views
5

Nel mio app che funziona su iOS 5 e 6 ho un if dichiarazione:confronto iOS7 di costante con l'espressione è sempre falso

NSInputStream *inputStream = [NSInputStream inputStreamWithFileAtPath:sourcePath]; 
if ([inputStream streamStatus] == NSStreamEventErrorOccurred){ 
[...] 
} 

In iOS 7 ottengo il seguente avviso:

Comparison of constant 'NSStreamEventErrorOccurred' with expression of type 
'NSStreamStatus' (aka 'enum NSStreamStatus') is always false 

Qualche idea su cosa è cambiato su iOS 7 per quanto riguarda la classe NSInputstream? Mi piacerebbe sapere perché ricevo questo avviso ora su iOS7.

+0

iOS 7 è ancora sotto NDA, il che ci impedisce di parlarne al di fuori del forum degli sviluppatori. Potresti non avere tutte le risposte che potresti ottenere sul forum degli sviluppatori Apple. – rckoenes

risposta

16

iOS 7 è più particolare con confronti enumerati. Il problema è che stai confrontando un valore enumerato NSStreamStatus con un altro valore NSInputStreamEvent non correlato. Invece, provare:

NSInputStream *inputStream = [NSInputStream inputStreamWithFileAtPath:sourcePath]; 
if ([inputStream streamStatus] == NSStreamStatusError){ 
    [...] 
} 

Questo problema non ha nulla a che fare con iOS 7 di per sé, è solo un problema esistente che hai ora scoperto grazie agli avvertimenti più attente.