在我的适用于 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 上会收到此警告。
最佳答案
iOS 7 更加注重枚举比较。问题是您正在将 NSStreamStatus 枚举值与另一个不相关的 NSInputStreamEvent 值进行比较。相反,请尝试:
NSInputStream *inputStream = [NSInputStream inputStreamWithFileAtPath:sourcePath];
if ([inputStream streamStatus] == NSStreamStatusError){
[...]
}
此问题与 iOS 7 本身无关,这只是您现在发现的一个现有问题,这要归功于更细致的警告。
关于iOS7 常量与表达式的比较始终为假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056596/