2012-12-21 6 views
8

である私は私のプロジェクトでASIHTTPRequestを使用しますが、ファイルASIDataCompressor.m190に:警告:タイプXXXXの発現と定数8の比較は常にfalse

Warning

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; 
    } 

それは私にこの警告します

これを修正する方法はありますか? THX

答えて

17

(NSStreamStatus)NSStreamEventErrorOccurred

編集

は、おそらくこれを処理するための正しい方法はNSStreamStatusErrorNSStreamEventErrorOccurredを交換することです。それはおそらくASIHTTPの作者が意図したものです。

+0

シンプルでパワフル! – yellow

+0

実際、これはおそらくASIHTTPの部分では不良なAPIです。また、これが新しいプロジェクトの場合は、ASIHTTPが作者によって廃止されたことを知っていますので、AFNetworkのような代替案を検討してください。しかし、ASIHTTPは本当にフル機能です。 – nielsbot

+0

ありがとうございます、私はAFNetwork.httpsを使用しようとします://github.com/AFNetworking/AFNetworking – yellow

6

NSStreamEventErrorOccurredは、8の定数値を持つタイプNSStreamEventです。 streamStatusメソッドは、NSStreamEventではないNSStreamStatusを返し、NSStreamStatusの値は7の値を超えないため、エラーが発生します。あなたは幸運にも8が境界を超え、常にそうではないのでエラーが発生するので、常に戻り値の型に注意する必要があります。

+0

ありがとうございました。 – yellow

+0

*>とNSStreamStatusの値が7 <* - Ahの値を超えない場合、これが私の問題です。 Xcode(今は非常にSwifty)は、enumが網羅的であるかのように警告を表示しています。しかし、Objective-C APIは、宣言された公開列挙型の範囲外の結果をうれしく返しています。私の場合、それは 'NSEventSubtype'です。 – pkamb

関連する問題