2016-10-26 3 views
0

NSURLNSDataに変換しようとしています。私のURL文字列は私のデバイスから取得しているローカルファイルURLです。NSURLからNSDataに値なし

let url = NSURL(string: url) 
    let imageData = NSData(contentsOfURL: url) 
    let image = UIImage(data: imageData) 

私はNSURL値を正しく取得しています。しかし、それをNSDataに変換している間は、それはnilの値を与えます。私はstackoverflowに似たような質問があることを知っていますが、私の問題を解決するものはありません。私はすぐに使用しています。

+2

はimageData'はnil 'ですか?ローカルの場合は 'contentsOfFile:'を試してください。または 'fileURLWithPath:'を使用してNSURL構造を変更してください。 – Larme

+1

ローカルファイルをロードする場合、なぜそれをURL、nsdataに変換する必要がありますか?これに従ってください:http://stackoverflow.com/questions/25739762/load-image-from-ios-8-framework –

答えて

1

文字列がローカルファイルURLを指している場合、間違ったAPIが使用されています。正しいものは

let url = NSURL(fileURLWithPath: urlString) 

NSURL(string:でのみ有効なファイル・スキーム(例えばhttpまたはftp)で始まるURL文字列

+0

それをNSDataに変換している間は、まだ値がゼロになっています。 **/var/mobile/Media/DCIM/101APPLE/IMG_1827.JPG ** これはNSURLに変換した後のものです: Media/DCIM/101APPLE/IMG_1827.JPG ** –

+0

そのディレクトリにアクセス権がありますか? – vadian

+0

私はそうは思わない。どうすればそれを保証できますか? –

0

ためにこのコードを試してみてくださいです。

let urlString = "/var/mobile/Media/DCIM/101APPLE/IMG_1827.JPG" 
let url = URL(fileURLWithPath: urlString) 
let imageData = NSData(contentsOf: url) 
let image = UIImage(data: imageData as! Data) 
+0

** imageData **はゼロです –

+0

おそらくあなたのurlStringが正しいと確信していますか? –

+0

はい私はコンソールからそれを得ています。 –

-1

正しいものが使用されていますcontentsOf:forecastURL! URLの代わりcontentsOfとして:forecastURL

let forecastURL = NSURL(string: "http://photos.state.gov/libraries/media/788/images/90x90.gif") 

    let testImage = NSData (contentsOf: forecastURL! as URL) 

    print("data",testImage!) 

    let image = UIImage(data: testImage! as Data) 
    print("imaGE :-",image!) 
+0

このコードが役立つ理由と変更した理由について説明を加えたい場合があります。 – milo526

+0

@ milo526 ** contentOf:forecastURLを追加しています。代わりにURL **として** contentsOf:url ** –

関連する問題