我目前是我的Swift应用程序上载任务的owncloud iOS library
它是用Objective-C编写的,要求我将AutoreleasingUnsafeMutablePointer<NSProgress?>传递给upload method

说我像这样创建一个新对象

let progress: NSProgress? = NSProgress()

如何在Swift中获取此对象的AutoreleasingUnsafeMutablePointer<NSProgress?>

我尝试了以下方法:
var progress: NSProgress? = NSProgress()
let unsafeAutoreleasingProgressPointer = AutoreleasingUnsafeMutablePointer<NSProgress?>.init(&progress)

但是我得到了

EXC_BAD_ACCESS(代码= 1,地址= 0x15942320)

在执行代码时。我想保留对进度对象的引用,因为我想添加一个观察者回调,该回调以百分比形式告诉我上传进度(也在示例链接中进行了演示)。

最佳答案

AutoreleasingUnsafeMutablePointer只是一个结构。您要做的就是创建指针,然后将值分配给它的memory属性。

var pointer = AutoreleasingUnsafeMutablePointer<NSProgress>.init()
pointer.memory = progress!

08-06 01:00