ios – .enumerateGroupsWithTypes阻止停止参数Swift(Xcode 6 be
发布时间:2020-12-14 18:04:01 所属栏目:百科 来源:网络整理
导读:今天我将 Xcode 6升级到beta 5(来自beta 1),你可以想象我发现我之前完美运行的 Swift应用程序充满了各种错误(好吧,从beta 1有很多变化).在所有错误中,有一个我无法弄清楚如何修复.它与swift闭包有关,特别是.enumerateGroupsWithTypes方法的enumerationBlock
今天我将
Xcode 6升级到beta 5(来自beta 1),你可以想象我发现我之前完美运行的
Swift应用程序充满了各种错误(好吧,从beta 1有很多变化).在所有错误中,有一个我无法弄清楚如何修复.它与swift闭包有关,特别是.enumerateGroupsWithTypes方法的enumerationBlock参数.这是代码:
assetLib.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos),usingBlock: { (group: ALAssetsGroup?,stop: CMutablePointer<ObjCBool>) in ... },failureBlock: { (error: NSError!) in ... }) 这确实在Swift(Xcode 6 beta 1)中完美运行.但现在,我得到2个错误: >
>
很明显,CMutablePointer不再存在,所以我试图修改stop参数,如: ...,stop: UnsafeMutablePointer<ObjCBool> ... 在这个改变之后,第二个错误显然消失了,但第一个转变为:
我甚至尝试将UnsafeMutablePointer更改为UnsafePointer,如this post所示. 编辑: 以下是enumerateGroupsWithTypes方法的完整代码: assetLib.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos),usingBlock: { (group: ALAssetsGroup?,stop: UnsafeMutablePointer<ObjCBool>) in if group != nil { group!.setAssetsFilter(ALAssetsFilter.allPhotos()) group!.enumerateAssetsAtIndexes(NSIndexSet(index: group!.numberOfAssets()-1),options: nil,usingBlock: { (result: ALAsset!,index: Int,stop: UnsafeMutablePointer<ObjCBool>) in if result { var alAssetRapresentation: ALAssetRepresentation = result.defaultRepresentation() url = alAssetRapresentation.url() } }) } else if group == nil { assetLib.assetForURL(url,resultBlock: { (asset: ALAsset!) in if asset != nil { var assetRep: ALAssetRepresentation = asset.defaultRepresentation() var iref = assetRep.fullResolutionImage().takeUnretainedValue() var image = UIImage(CGImage: iref) imageView.image = image self.view.addSubview(imageView) let mask = CAShapeLayer() mask.path = UIBezierPath(ovalInRect: CGRectMake(0,200,200)).CGPath mask.frame = CGPathGetPathBoundingBox(mask.path) mapView.layer.mask = mask self.view.addSubview(mapView) } },failureBlock: { (error: NSError!) in NSLog("Error!",nil) }) } },failureBlock: { (error: NSError!) in NSLog("Error!",nil) }) 解决方法
NSLog(“错误!”,nil)错误,应该是NSLog(“错误!”). (这似乎混淆了Swift编译器并导致无关的错误消息.)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |