1.block:类似于一个"闭包",闭包:可以从函数外部访问函数内部的变量,将block当做一个代码块来使用
block相相似于函数的优点:block可以当做一个参数传递,而函数/方法不能
{
block使用:
1.定义block类型,返回值/需要什么参数,
2.确定block中执行的内容(这个时候还没有执行这个block)
3.执行block
block使用注意:
1.定义block属性的时候要用copy,
2.block使用self,要使用self弱语法引用,(防止循环引用)
"block面试题!!"
GCD中的block(任务)出现self,会造成循环引用吗,---GCD中的block可以直接使用self
block循环引用的条件; block------>强引用(self)self------>强引用([block属性])
NSOperation中的block是否可以出现self?
一般情况下,NSOPerationQueue需要作为一个属性,将操作添加到队列中!
注意:确实会出现循环引用,但是操作一旦执行完毕之后就会被自动销毁,所以NSOPeration中可以出现self,
}