2012-12-21 18 views
8

我在项目中使用ASIHTTPRequest假的,但在文件中ASIDataCompressor.m190警告:恒8型XXXX的表达比较总是

if ([inputStream streamStatus] == NSStreamEventErrorOccurred) { 
     if (err) { 
      *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Compression of %@ failed because we were unable to write to the destination data file at %@",sourcePath,destinationPath],NSLocalizedDescriptionKey,[outputStream streamError],NSUnderlyingErrorKey,nil]]; 
     } 
     [compressor closeStream]; 
     return NO; 
    } 

它在警告我:

Warning

任何一个知道如何解决它? THX

回答

17

(NSStreamStatus)NSStreamEventErrorOccurred

编辑

可能来处理这个正确的方法是用NSStreamStatusError更换NSStreamEventErrorOccurred。这可能是ASIHTTP的作者所期望的。

+0

简单而强大! – yellow

+0

真的,这可能是ASIHTTP方面的糟糕的API。另外,如果这是一个新项目,我知道ASIHTTP已经被作者废弃了,所以你可能想考虑替代品,比如AFNetwork。然而,ASIHTTP功能非常全面。 – nielsbot

+0

谢谢,我会尝试使用AFNetwork.https://github.com/AFNetworking/AFNetworking – yellow

6

NSStreamEventErrorOccurred的类型为NSStreamEvent,恒定值为8streamStatus方法返回NSStreamStatus而不是NSStreamEventNSStreamStatus值不会超过7的值,这就是您遇到错误的原因。你幸运的是,8超出了界限,你得到了一个错误,因为情况并非总是如此,因此,你应该始终谨慎的返回类型。

+0

谢谢你,让我知道它是如何工作的。 – yellow

+0

*>和NSStreamStatus值不会超过7 *的值,这对我来说是个问题。现在非常Swifty的Xcode显示警告,就好像枚举是详尽无遗的。但Objective-C API很高兴地返回声明的公共枚举范围之外的结果。在我的情况下,它是'NSEventSubtype'。 – pkamb

相关问题