微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift的小技巧周三贴

1 Swift 的 protocol 如是 optional的, 最好这个protocol 遵循 NSObjectProtocol, 原因是你需要对delegte调用responds方法检查
2 optional 协议的写法是这样的
@objc protocol QISCaptureManagerDelegate : NSObjectProtocol {
@objc optional func didChangeAccessCameraState(isGranted:Bool);
@objc optional func didOutputDecodeStringValue(stringValue:Nsstring);
@objc optional func didDecodeUnmatchType(codeType:Nsstring);
}

3 iOS上用swift CGFloat和 Float的转换 如果用 Float(expression)这种方式是很烦人的,而且浪费时间
extension Int {
var f: CGFloat { return CGFloat(self) }
}

extension Float {
var f: CGFloat { return CGFloat(self) }
}

extension Double {
var f: CGFloat { return CGFloat(self) }
}

extension CGFloat {
var swf: Float { return Float(self) }

用以上的extension就世界清静许多。

3 dispatch queue 的写法也变了
dispatchQueue.global(qos: .background).async(execute: {
} )

dispatchQueue.main.async {
}

4 delegate检查
if self.delegate != nil && (self.delegate?.responds(to: #selector(QISCaptureManagerDelegate.didOutputDecodeStringValue(stringValue:))))!
{
self.delegate!.didOutputDecodeStringValue!(stringValue: stringValue)

}

}

原文地址:https://www.jb51.cc/swift/322603.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐