PermissionScope Swift4 兼容问题

2018年6月14日 · 36 字 · 1 分钟

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() {

}