基本上我在Swift中使用AssetsLibrary框架,我怎么能将stop指针的值修改为NO/False/0(我甚至不知道它应该是什么值除外)?
self.library.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos), usingBlock: {(group: ALAssetsGroup!, stop: CMutablePointer<ObjCBool>) in
},
failureBlock: {(error: NSError!) in
})
Run Code Online (Sandbox Code Playgroud)
我应该能够访问该值并使用unsafePointer修改它,但我似乎无法正确编写闭包.
Jea*_*let 17
这相当于*stop = YES;:
stop.withUnsafePointer { $0.memory = true }
Run Code Online (Sandbox Code Playgroud)
为了使它更简洁,你可以做以下事情:
operator infix <- {}
@infix func <- <T>(ptr: CMutablePointer<T>, value: T) {
ptr.withUnsafePointer { $0.memory = value }
}
Run Code Online (Sandbox Code Playgroud)
然后上面的这一行就变成了这样:
stop <- true
Run Code Online (Sandbox Code Playgroud)
不确定是否推荐的款式,不过......
(您可以从中选择字符/ = - + * % < > ! & | ^ . ~来创建自定义运算符.)
从Xcode 6 beta 4开始,您现在可以:
stop.memory = true
Run Code Online (Sandbox Code Playgroud)
或者,正如holex所说,您可以:
stop.initialize(true)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |