PermissionScope Swift4 相容問題

xialeistudio發表於2018-06-14

PermissionScope是iOS非常好用的許可權處理庫,介面效果也非常精美。不幸的是作者已經停止維護。

PermissionScope is no longer supported. Please use an alternative if you need updates for newer iOS 10 and 11 APIs!

問題的來源

因為作者是基於Swift3開發的,而4.0的@selector語法有一點調整,所以是不能通過編譯的,處理辦法是根據Xcode的提示一個個修正。

可是事情真的這麼簡單嗎?Xcode處理過後雖然編譯通過了,但是會觸發執行時錯誤。錯誤內容大致是呼叫了不存在的方法

解決方案

由於我們根據Xcode的提示給相關程式碼加了@objc,但是有些方法是沒有加的,而這些方法類似下面的程式碼:

func requestCamera() {

}

由於沒有@objc修飾,@selector指令找不到方法,所以就報錯了。解決方案如下:

@objc
func requestCamera() {

}

相關文章