-
1.protocol 类似“接口”,定义一组规范,再由具体的类、枚举、结构体变量来实现; 2.协议的方法,参数不可以赋初值,同时不允许有函数体body; 3.协议的属性,需选择{get set}可读写或{get}只读,且只能用var定义; 4.协议不是一种类型,因此,不用像类等一样初始化,而是创建一个类型,来遵守此协议; 5.协议,本身可以被当作一个类型来看待,但是和遵守协议实现的类等有所区别;查看全部
-
extension扩展关键字使用注意点: 1、只能扩展计算属性,便利构造函数,而不能对存储属性、指定构造函数进行扩展 2、在extension中修改存储属性注意引用类型和值类型的区别查看全部
-
unowned 与 weak 关键字作用相似,但是修饰的常量或变量必须是非空类型。 因为有一定的危险性,该属性指向的对象不应被提前释放。查看全部
-
类型检验 is 判断某个实例是否属于这个类查看全部
-
typealias关键字,意思是给被修饰的类型起一个别名,如下图,Index实质是String.CharacterView.Index查看全部
-
1.protocal 相当于“接口”,定义一组规范,再由具体的类、结构体、枚举型变量实现 2.协议的方法中没有具体实现,不能有默认参数,默认参数相当于一种实现 3.协议的属性的读取类型为{get set}可读写或{get}只读,协议属性定义必须为var 4.协议不是类型,不能像类一样初始化,而要创建一个类型来遵守协议 5.Swift中冒号:表示“是一个” 6.协议定义作为一个pet,应有什么属性和方法 7.遵守协议:只要把协议规定的部分实现,其余的可任意创建添加。 8.协议本身可以当作一个类型,和遵守协议而实现的类型是有区别的。 apet 和 myDog 指向同一片内存,只是声明的类型不同查看全部
-
隐式可选型查看全部
-
感谢bobo老师查看全部
-
4-6 UIKit中的委托模式查看全部
-
NSObject = ObjC中基础类 + Swift中的基础类, AnyObject = NSObject + Swift中无继承的类, Any = AnyObject + Swift函数
查看全部 -
//泛型 数组 字典 集合 都是结构体类型,都支持泛型,也就是 any 类型
let arr = Array<Int>()
let strArr = Array<String>()
let dict = Dictionary<Int,String>()
let set = Set<Float>()
struct Stack <T> {
var items = [T]()
func isEmpty() -> Bool {
return items.count == 0
}
mutating func push (item : T){
items.append(item)
}
mutating func pop() -> T?{
guard !self.isEmpty() else {
return nil
}
return items.removeLast()
}
}
查看全部 -
扩展 extension 相当于OC的category,可以添加函数,添加属性只能添加计算属性,不能添加存储属性
查看全部 -
NSObject OC中的基类
AnyObject 包含了 NSObject 以及Swift中定义的类的对象
Any所有的类型,包括了AnyObject,以及闭包类型
Any > AnyObject > NSObject
查看全部 -
is 用于运行时判断具体类型,类似于isKindOfClass
查看全部 -
协议聚合
查看全部
举报