• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift-自定义类的构造函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

构造函数类似oc中的init方法
默认情况下,创建一个,类会调用一个构造函数
即使没写任何构造函数,编译器会默认一个构造函数
如果是继承NSObject,可以对构造函数重写

class Person: NSObject {
    var name: String?
    var age:Int = 0
    
//    重写
    override init() {
//        在构造函数中,如果没有明确调用super.init(),那么系统会帮助调用
        super.init()
    }
    
//    自定义构造函数
    init(name:String,age:Int) {
        self.name = name
        self.age = age
    }
    
//    init(dict:[String : AnyObject]) {
////        这种写法会报错
////        name = dict["name"]
////        age = dict["age"]
////        因为字典取值是一个可选类型
//        
//       let tempname = dict["name"]
////        tempname是一个AnyObject可选类型
////        as?最终转成的类型是一个可选类型,name是可选类型
//        name = tempname as?String
//        
//       
////        age 是一个确定的int行
////        as!最终转换的是一个确定类型(这是在强制解包,危险,如果没值,会崩溃)
//        let tempage = dict["age"]
//        age = tempage as!Int
//        
////        优化后的写法(可选绑定)
//        if let tempage = dict["age"] as?Int {
//            age = tempage
//        }
//        
//    }
    
    
    //        常用方法kvc
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
}

let p = Person()

let p1 = Person.init(name: "why", age: 12)
print(p1.name)

let p2 = Person.init(dict: ["name":"ee","age":23])

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift-UIViewController发布时间:2022-07-13
下一篇:
oc及swift之mac中NSPopUpButton发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap