-
4-3 类型方法查看全部
-
didSet和willSet不会在类实例化的时候被执行查看全部
-
struct Location { let latitude: Double let longitude: Double init(coordinateString: String) { let commaIndex = coordinateString.rangeOfString(",")!.startIndex let firstElement = coordinateString.substringToIndex(commaIndex) let lastElement = coordinateString.substringFromIndex(commaIndex.successor()) latitude = Double(firstElement)! longitude = Double(lastElement)! } init(latitude: Double, longitude: Double) { self.latitude = latitude self.longitude = longitude } } let location1 = Location(coordinateString: "23.00,-112.3") let location2 = Location(latitude: 23.00, longitude: -112.3)查看全部
-
假设你为你子类引入的任何新的属性都提供了默认值,请遵守以下2个规则:
规则1
如果你的子类没有定义任何指定初始化器,它会自动继承父类所有的指定初始化器。
规则2
如果你的子类提供了所有父类指定初始化器的实现——要么是通过规则1继承来的,要么通过在定义中提供自定义实现的——那么它自动继承所有的父类便捷初始化器。
就算你的子类添加了更多的便捷初始化器,这些规则仍然适用。
注意
子类能够以便捷初始化器的形式实现父类指定初始化器来作为满足规则2的一部分。
查看全部 -
swift 引用类型判读是否相等用 === 判断
如:
class persion
var persion1 = persion
persion1 === persion
查看全部 -
继承: 子类可以使用父类的方法和属性,final 修饰的类不能再被继承
查看全部 -
static let shareInstanc = DOwnMangaer()
private init( ){
}
查看全部 -
open public internal fileprivate private
查看全部 -
lazy property 懒加载属性,保证属性值只被计算一次就保存下来,计算属性每次调用都会重新计算
var address: String{
return ""
}
lazy var myAddress: String = {
return "\(self.latitude)" + "\(langtitude)"
}()
var width: Int{
set{
}
get{
return latitude - langtitude
}
}
查看全部 -
属性观察器: didSet{} willSet{}
查看全部 -
静态方法又叫类型方法 方法前面添加 static 关键字就可以
查看全部 -
类是引用类型传递,结构体是值传递类型,类可以被继承,结构体是更轻量级的,存储在系统的栈里面,类存储在系统的堆里面。
结构体适合描述存储值的对象。rect point
类适合描述对象 人 车
查看全部 -
计算属性默认是只有getter方法的,可以重写setter getter,是通过存储属性计算得来的,类和结构体都有这两种属性。长方形的size 和 origin都是存储属性,center是计算属性
查看全部 -
给属性添加static关键字就成了类型属性,被类持有,生命周期跟应用程序一样长
查看全部 -
引用类型是指向,改变自身是允许的,结构体和枚举 值类型是拷贝,改变自身需要mutating 特殊处理
查看全部
举报