2013-08-05 55 views
5

在我的應用程序,在iOS 5和6的作品我有一個if聲明:iOS7比較總是假

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

在iOS 7,我得到以下警告:

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

關於NSInputstream類的iOS 7更改內容有何想法?我想知道爲什麼我現在在iOS7上收到此警告。

+0

iOS 7仍然處於NDA之下,這限制了我們在開發者論壇之外討論它。您可能無法獲得蘋果開發者論壇上可能獲得的答案。 – rckoenes

回答

16

iOS 7與enum比較更具特色。問題在於你正在將NSStreamStatus枚舉值與另一個無關的NSInputStreamEvent值進行比較。相反,嘗試:

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

這個問題無關與iOS 7本身,它只是現有的問題,你現在已經發現由於更細緻的警告。