swift小记
文章平均质量分 67
云松sys
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Swift下的Lazy懒加载模式
lazy模式:延时加载或者说延时初始化是很常用的优化方法,在构建和生成新的对象的时候,内存分配会在运行时耗费不少时间。如果我们可以把这个属性的初始化时刻推迟,与包含它的对象的初始化时刻分开,以达到提升性能的目的。举例oc模式下@property (nonatomic, strong)NSMutableArray *lazyArr;- (NSMutableArray *)lazyArr{原创 2016-05-05 10:38:13 · 1792 阅读 · 1 评论 -
Swift的unowned字段
unowned 简单的说就是防止循环引用,类似OC中的unsafe_unretained字段。最常用的情况是在懒加载模式使用闭包的时候防止循环引用,如果当前的实例直接或者间接地对这个闭包又有引用的话,就形成了一个 self -> 闭包 -> self 的循环引用。举例classPerson{ letname:String lazyvarpri转载 2016-05-05 11:05:06 · 567 阅读 · 0 评论 -
swift的willSet、didSet、get、set函数
willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化,一个监听改变之前 一个监听改变之后的属性get就是Oc中的get函数 set就是OC中的set函数简单举例class Person : NSObject{ var variable1 :Int = 0 { willSet { print(原创 2016-05-05 13:53:21 · 1152 阅读 · 0 评论 -
swift中的convenience
在 Objective-C 中,init 方法是非常不安全的:没有人能保证 init 只被调用一次,也没有人保证在初始化方法调用以后实例的各个变量都完成初始化,甚至如果在初始化里使用属性进行设置的话,还可能会造成各种问题,虽然 Apple 也明确说明了不应该在 init 中使用属性来访问,但是这并不是编译器强制的,因此还是会有很多开发者犯这样的错误。所以 Swift 有了超级严格的初始原创 2016-05-05 14:39:30 · 1269 阅读 · 0 评论 -
swift之mutating
mutating 主要用于定义协议接口增加的关键字段Swift 的 protocol 不仅可以被 class 类型实现,也适用于 struct 和 enum。因为这个原因,我们在写给别人用的接口时需要多考虑是否使用 mutating 来修饰方法,比如定义为 mutating func myMethod()。Swift 的 mutating 关键字修饰方法是为了能在该方法中修改 stru转载 2016-05-05 17:39:22 · 769 阅读 · 0 评论 -
swift之给拓展Category增加属性
使用 Category 扩展现有的类的功能的时候,直接添加实例变量这种行为是不被允许的,这时候一般就使用 property 配合 Associated Object 的方式,将一个对象 “关联” 到已有的要扩展的对象上。进行关联后,在对这个目标对象访问的时候,从外界看来,就似乎是直接在通过属性访问对象的实例变量一样,可以非常方便。// MyClass.swiftclass MyClas转载 2016-05-06 09:16:18 · 1289 阅读 · 0 评论
分享