2013-08-05 56 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本身,它只是现有的问题,你现在已经发现由于更细致的警告。