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

그래, 대답은 코드 줄과 아무 관련이 없습니다. 나는보기를 누른 다음 디버그를 클릭 한 다음보기 콘솔을 클릭하면 콘솔에 Info.plist에 NSPhotoLibraryUsageDescription 키를 추가하라는 오류 메시지가 표시됩니다.

사진 프레임 워크를 사용할 때 카메라 롤에 액세스하려는 이유가있는 키를 포함해야합니다. 일단이 키를 plist에 추가하면 모든 것이 효과가있었습니다.

0

다른 레벨로 @James 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") 
    } 
})