swift

作者: 小星星吃KFC | 来源:发表于2019-12-03 19:16 被阅读0次

枚举

public typealias Info = (title: String?, description: String?, thumbnail: String?, media: String?)

public enum WeChatSubtype {
    
    case session(info: Info)
    case timeline(info: Info)
    case favorite(info: Info)
    
    
    var scene: String {
        switch self {
        case .session:
            return "0"
        case .timeline:
            return "1"
        case .favorite:
            return "2"
        }
    }
    
    var info: Info {
        switch self {
        case .session(let info):
            return info
        case .timeline(let info):
            return info
        case .favorite(let info):
            return info
        }
    }
    
    var name: String {
        return "jim";
    }
    
    
    
}




let info = Info(
    title: "Friends Text, \(UUID().uuidString)",
    description: nil,
    thumbnail: nil,
    media: nil
)

let type = WeChatSubtype.timeline(info:info)
type.name

属性、回调、链式

class Person{
    
    var name :String = ""
    
    //计算属性
    private var _age:String = ""
    var age: String {
        get {
            return _age+"岁"
        }
        set {
            _age = newValue
        }
    }
    lazy var height = "18cm"
    
  //只有get,只能内部set
    private(set) var name2: String = ""
  
    init() {
        name2 = "jim"
    }
    
    
    public typealias SuccessHandler = (() -> Void)
    
     var successClosure: SuccessHandler?
    
    var errorClosure: ((_ err: String) -> Void)!
    
    func success(closure: @escaping SuccessHandler) ->Self {
        successClosure = closure
        return self
    }
    
    
    func error(_ closure: @escaping (_ err: String) -> Void) -> Self {
        errorClosure = closure
        
        return self
    }
    
    //“_”是代表函数调用时,可以忽略参数名称
    func test(name: String,_ age: String) {
    }
    
    func test2() {
           errorHandler?("405")
       }
    
    var errorHandler : ((_ err: String) -> Person)?
    
}

var person = Person()
person.name2

person.success {
print("success>>")
}.error { (error) in
    
    print("error>> "+error)
}

person.errorClosure?("4004")
person.successClosure?()

person.errorHandler = {(error)in
    print(error)
    return person;
}

person.test2();

相关文章

网友评论

      本文标题:swift

      本文链接:https://www.haomeiwen.com/subject/iurhgctx.html