Swift4.1 弱引用对象数组
弱引用对象struct WeakObject<T: AnyObject>: Equatable, Hashable { private let identifier: ObjectIdentifier weak var o...
弱引用对象struct WeakObject<T: AnyObject>: Equatable, Hashable { private let identifier: ObjectIdentifier weak var o...
protocol协议:一个只有方法体(没有具体实现)的类,Java中称作接口,实现协议的类必须实现协议中
从字面上来理解,就是相关类型.意思也就是被associatedtype关键字修饰的变量,相当于一个占位符,不表示具体的类型.具体类型需要让实现的类来指定
在Swift中class和struct关系其实很简单,类似UIView与CALayer,我们知道类class的本质就是结构体,所以说结构体struct相比较类class更加轻量级,因为类的功能比结构体多很多
下面代码是否会循环引用DXPerson *person = [[DXPerson alloc] init];person.age = 10;person.block = ^{ NSLog(@"age = %d", person.age);}...
当block在栈上时,并不会对__block变量产生强引用
如何在block内部修改外部变量?
在ARC环境下,block作为函数的返回值,编译器会默认进行copy操作,因此block不会销毁typedef void(^DXBlock)(void);DXBlock dxBlock() { // 在ARC环境下,block作为函数的返回...
block的类型block有3种类型,可以通过调用class方法或者isa指针查看具体类型,最终都是继承自NSBlock类型 NSGlobalBlock ( _NSConcreteGlobalBlock )