Swift的一些注意点

该系列主要是记录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)  {
    }
}

你可能感兴趣的:(Swift的一些注意点)