0

Swiftに変換しようとするとエラーが発生しNSDataますNSString

これは私の要求です:

var request = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReturnCacheDataElseLoad, timeoutInterval: 200)

ここでエラーが発生します:

        var mydata :NSData = NSURLCache.sharedURLCache().cachedResponseForRequest(request)!.data
        var datastring = NSString(data: mydata, encoding: UInt()) as! String

私の両方が警告エラーを取り除こうとしましたが、うまくいきませんでした:私はtimeoutInterval200 に増加しました。

そして私は試しました:

var myinfo = NSString(bytes: mydata.bytes, length: mydata.length, encoding: self.responseEncoding())

func responseEncoding() -> NSStringEncoding {

    return responseEncoding()


}

この解決策はここではうまくいきませんでした: 不正な NSStringEncoding 値 0x0000 が検出されました

4

1 に答える 1

1

UInt()値ゼロの整数を作成するため、効果的に呼び出しています

var datastring = NSString(data: mydata, encoding: 0) as! String

しかし、これは encoding パラメーターの有効な引数ではありません。たとえば0、有効な に置き換える必要があります。NSStringEncodingNSUTF8StringEncoding

また、変換が失敗する可能性があるため、強制キャストの代わりにオプションのバインディングを使用することをお勧めします。

if let datastring = NSString(data: mydata, encoding: NSUTF8StringEncoding) as? String {

} else {
      // Encoding error ...
}
于 2015-07-23T07:32:01.110 に答える