该系列主要是记录Swift中一些注意点,持续更新中。
1.let与var的使用
1.先用let,后续有需要改变再换成var。
2.可直接在函数参数使用默认值(如cacheKey: String? = nil),但是 self.cacheKey是let,所以不能为nil,需要给一个不为nil的默认值(downloadURL.absoluteString)
public struct ImageResource: Resource {
public init(downloadURL: URL, cacheKey: String? = nil) {
self.downloadURL = downloadURL
self.cacheKey = cacheKey ?? downloadURL.absoluteString
}
public let cacheKey: String
public let downloadURL: URL
}
2. 类的使用
1.OC和swift混编时,需要在枚举或类前面加上@objc
才能在OC中识别到。
2.便利方法是直接调用其他init方法的,需要加上convenience
3.重载方法是需要加上super.init()
@objc public enum JCMessageState: Int {
case sending
case sendError
case sendSucceed
case downloadFailed
}
/// 消息选项
@objc open class JCMessageOptions: NSObject {
public override init() {
super.init()
}
public convenience init(with content: JCMessageContentType) {
self.init()
.....
}
}
open var style: JCMessageStyle = .bubble
open var alignment: JCMessageAlignment = .left
open var isUserInteractionEnabled: Bool = true
open var showsCard: Bool = false
open var state: JCMessageState = .sendSucceed
internal func fix(with content: JCMessageContentType) {
}
}
网友评论