5

在适用于 iOS 5 和 6 的应用程序中,我有一个if声明:

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 上收到此警告。

4

1 回答 1

17

iOS 7 在枚举比较方面更加特别。问题是您将 NSStreamStatus 枚举值与另一个不相关的 NSInputStreamEvent 值进行比较。相反,请尝试:

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

此问题与 iOS 7 本身无关,它只是您现在发现的一个现有问题,这要归功于更细致的警告。

于 2013-08-05T11:05:04.880 回答