OC 中我们已经很习惯用指针传值,各种代码也都是指针满天飞。而 Swift 作为一门全新的语言也借鉴了很多成熟现代语言的经验,如 Java, JavaScript, Python等。现代语言的一大特点就是没有指针。但是如何兼容 Cocoa 里历史遗留下来的众多含有指针的函数呢?Swift 出了这么个玩意儿。
let array = NSArray(array: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])
array.enumerateObjects(options: .concurrent) { (obj, idx, stop) in
print("内容" + "\(obj)")
if idx == 3 {
stop.pointee = true
}
}
如上面代码,这里的 stop 是一个 UnsafeMutablePointer<ObjCBool> 类型的数据,这里如果要修改 stop 的值,只需将 stop 的 pointee 属性改成相应的值即可。
网友评论