管理 Hyperledger Indy iOS SDK 的回调
Manage callbacks for Hyperledger Indy iOS SDK
我创建了一个新的 xCode 项目 (swiftUI) 并按照指南安装了 Indy iOS SDK。
Link: https://github.com/hyperledger/indy-sdk/blob/master/wrappers/ios/README.md
pod安装正确,可以调用SDK提供的各种功能
我想依次执行以下操作:
- 创建钱包
- 打开钱包
我尝试嵌套这两个操作:
let error = indy_create_wallet(0, walletConfig, credentials, {(commandHandle, err) in
print("Create wallet error: ", err)
let error = indy_open_wallet(1, self.walletConfig, self.credentials, {(commandHandle2, err2, handle) in
print("Open wallet error: ", err2)
})
})
但是,在这种情况下我得到错误:无法从捕获上下文的闭包形成 C 函数指针
我尝试使用 DispatchGroup 但我又遇到了同样的错误,因为我必须在回调内的对象上调用 leave() 方法。
不幸的是,我无法使用“libindy-objc”包装器,因为它与我正在使用的 swift 版本不兼容。
有没有人知道如何管理这些回调以顺序执行钱包创建和打开操作?谢谢!
为了解决这个问题,我(在一个新组中)导入了包装器源文件。
为什么不在 github 上使用已经准备好的包装器?
https://github.com/hyperledger/indy-sdk/tree/master/wrappers/ios/libindy-pod/Indy/Wrapper
这是用ObjC写的,但是使用Swift它可以生成一个映射接口,然后你可以使用DispatchSemaphore
和.signal
和.wait
[=14来排序操作=]
我创建了一个新的 xCode 项目 (swiftUI) 并按照指南安装了 Indy iOS SDK。 Link: https://github.com/hyperledger/indy-sdk/blob/master/wrappers/ios/README.md
pod安装正确,可以调用SDK提供的各种功能
我想依次执行以下操作:
- 创建钱包
- 打开钱包
我尝试嵌套这两个操作:
let error = indy_create_wallet(0, walletConfig, credentials, {(commandHandle, err) in
print("Create wallet error: ", err)
let error = indy_open_wallet(1, self.walletConfig, self.credentials, {(commandHandle2, err2, handle) in
print("Open wallet error: ", err2)
})
})
但是,在这种情况下我得到错误:无法从捕获上下文的闭包形成 C 函数指针
我尝试使用 DispatchGroup 但我又遇到了同样的错误,因为我必须在回调内的对象上调用 leave() 方法。
不幸的是,我无法使用“libindy-objc”包装器,因为它与我正在使用的 swift 版本不兼容。
有没有人知道如何管理这些回调以顺序执行钱包创建和打开操作?谢谢!
为了解决这个问题,我(在一个新组中)导入了包装器源文件。
为什么不在 github 上使用已经准备好的包装器? https://github.com/hyperledger/indy-sdk/tree/master/wrappers/ios/libindy-pod/Indy/Wrapper
这是用ObjC写的,但是使用Swift它可以生成一个映射接口,然后你可以使用DispatchSemaphore
和.signal
和.wait
[=14来排序操作=]