ASIDataCompressor.m当中:
if ([inputStreamstreamStatus] == NSStreamEventErrorOccurred)
在xcode 5下报出警告: Comparison of constant 'NSStreamEventErrorOccurred'(8) with expression of type 'NSStreamStatus' (aka enum NSStreamStatus) is always false. 从这个警告的意思看:NSStreamStatus的类型的比较用错了的。然后查看下文档这个类型发现:
Stream Event Constants
One or more of these constants may be sent to the delegate as a bit field in the second parameter of stream:handleEvent:.
typedef enum : NSUInteger { NSStreamEventNone = 0, NSStreamEventOpenCompleted = 1 << 0, NSStreamEventHasBytesAvailable = 1 << 1, NSStreamEventHasSpaceAvailable = 1 << 2, NSStreamEventErrorOccurred = 1 << 3, NSStreamEventEndEncountered = 1 << 4 }而:
Stream Status Constants
These constants indicate the current status of a stream. They are returned by streamStatus
.
typedef enum { NSStreamStatusNotOpen = 0, NSStreamStatusOpening = 1, NSStreamStatusOpen = 2, NSStreamStatusReading = 3, NSStreamStatusWriting = 4, NSStreamStatusAtEnd = 5, NSStreamStatusClosed = 6, NSStreamStatusError = 7 };所以需要将
NSStreamEventErrorOccurred更改为NSStreamStatusError,解决问题。