2016-08-05 5 views
0

マイアプリのクラッシュを呼び出すときにクラッシュするアプリケーションは、私は、エラースレッド1でrequestImage

override func viewDidLoad() { 
    super.viewDidLoad() 
    collectionView.delegate = self; 
    collectionView.dataSource = self; 

    let fetchResult = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: nil); 
    let asset = fetchResult.firstObject; 

    let options = PHImageRequestOptions() 
    options.deliveryMode = .fastFormat 
    options.isSynchronous = true 

    let imageManager = PHCachingImageManager(); 
    imageManager.requestImage(for: asset!, targetSize: CGSize(width:100,height:100), contentMode: .aspectFit, options: options, resultHandler: {(image,info) -> Void in 
    print("Got image") 
    }) 
} 

誰もが何であるかを知っている:ビューで

imageManager.requestImage(for: asset!, targetSize: CGSize(width:100,height:100), contentMode: .aspectFit, options: options, resultHandler: {(image,info) -> Void in}) 

完全なコードは、負荷をしましたエラーが発生しましたか?

func requestImage(for asset: PHAsset, targetSize: CGSize, contentMode: PHImageContentMode, options: PHImageRequestOptions?, resultHandler: (UIImage?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID 

ありがとう:私はここ

は私が呼んしようとしているメソッドの構文です...それはクロージャとは何かを持っていますが、私が間違っているかわからないんだと思います!

答えて

0

いいえ答えはコード行とは関係ありません。 ViewをクリックしてデバッグしてからView Consoleをクリックしなければならなかったので、Info.plistにNSPhotoLibraryUsageDescriptionというキーを追加するようにコンソールに表示されるエラーメッセージを表示することができます。

写真フレームワークを使用しているときは、カメラロールにアクセスしたい理由があるキーを含める必要があります。一度このキーをplistに追加すると、すべてが機能しました。

0

@ジェームスZaghiniを取って、別のレベルに答えてください。

また、UIImage、または情報がnilであるかどうかをチェックする必要があります。

guard let asset = asset else { return } 

let imageManager = PHCachingImageManager(); 
imageManager.requestImage(for: asset, targetSize: CGSize(width:100,height:100), contentMode: .aspectFit, options: options, resultHandler: {(image,info) -> Void in 
    if let img = image{ 
     print("Got Image") 
    } 
    if let imgInfo = info{ 
     print("Info") 
    } 
}) 
関連する問題