iOS Swift assetForURL错误

5

我希望您能够使用Swift从iOS 8的ALAsset中获取图像资源。

我使用SNImagePicker来选择多个图像。

在Objective-C中,我使用以下代码:

    for (int i = 0; i < info.count; i++) {
    ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
    [assetLibrary assetForURL:info[i] resultBlock:^(ALAsset *asset) {
        UIImage *image = [UIImage imageWithCGImage:[asset aspectRatioThumbnail]];
    } failureBlock:^(NSError *error) {     }];

使用Swift,我尝试这样做:

func imagePicker(imagePicker: SNImagePickerNC!, didFinishPickingWithMediaInfo info: NSMutableArray!){
    var i: Int = Int(0);
    for (i; i < info.count as Int; i++){
        var url: NSURL = info[i] as NSURL
        var assetLibrary: ALAssetsLibrary = ALAssetsLibrary()

        //
        //assetLibrary.assetForURL(NSURL?(), resultBlock: ALAssetsLibraryAssetForURLResultBlock?(), failureBlock: ALAssetsLibraryAccessFailureBlock?())            
        //

        assetLibrary.assetForURL(url, resultBlock: {
            (asset: ALAsset!) in
            if asset != nil {
                var assetRep: ALAssetRepresentation = asset.defaultRepresentation()
                var iref = assetRep.fullResolutionImage().takeUnretainedValue()
                var image =  UIImage(CGImage: iref)

                self.imageViewPreview.contentMode = UIViewContentMode.ScaleAspectFill
                self.imageViewPreview.image = image

            }
            }, failureBlock: {
                (error: NSError!) in

                NSLog("Error!", nil)
            }
        )
    }
}

使用这段代码,我遇到了一个错误:

类型“CVarArg”不符合协议“NilLiteralConvertible”


请注意,保留了HTML标签。

哪一行引起了错误? - Rafał Sroka
1个回答

3
尝试将 NSLog("Error!", nil) 替换为 NSLog("Error!")。这个语句导致 Swift 抛出意外的错误信息。
请参考以下图片: enter image description here enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接