我正在嘗試從 C 代碼庫在 iOS 上實作生物特征認證。這是一個例子。
為了實作這一點,我需要使用 LAContext obj-c API。但是,當我嘗試從 C 初始化類時,出現指標/參考錯誤:
// Cannot initialize a variable of type 'LAContext *__strong' with an rvalue of type 'LAContext'
LAContext* authContext = LAContext();
有什么辦法可以做到這一點?或者這個結構只能從 Obj-c 獲得?
編輯1:
我的檔案在 Obj-C 中,所以理論上我應該能夠混合 C 和 Obj-C 代碼,但是當我嘗試撰寫一個 Obj-C 函式來分配 LAContext 物件時,我得到一個缺少符號的錯誤:
-(bool)biometricsAvailable {
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
return true;
}
在編譯步驟中拋出此錯誤:
Undefined symbol: _OBJC_CLASS_$_LAContext
XCode 本身在編輯檔案時不會顯示任何錯誤,僅在我嘗試構建/編譯應用程式時才會發生。
uj5u.com熱心網友回復:
事實證明,問題不在于混合 C 和 Obj-C 代碼,而在于我的庫通過 cocoapods 鏈接并且缺少 LocalAuthentication 框架。
我需要補充:
s.frameworks = "LocalAuthentication"
到 podspec 并創建一個 LAContext 實體就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/469180.html
