首页 技术 正文
技术 2022年11月15日
0 收藏 904 点赞 2,878 浏览 844 个字

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

class Person: NSObject {
var name: String?
var age:Int = // 重写
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: )
print(p1.name)let p2 = Person.init(dict: ["name":"ee","age":])
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898