我知道如果在一个块中引用self,则self会被一个块保留。但如果我这样做:
的NSLog(@ “%@”,self.memberVariable);
块还会保留memberVariable吗?或只有自己被这个街区保留?
先谢谢。
答案 0 :(得分:1)
成员变量也保留。根据块编程指南,
在引用计数环境中,默认情况下引用时 一个块内的Objective-C对象,它被保留。这甚至是真的 如果您只是引用对象的实例变量。宾语 但是,使用__block存储类型修饰符标记的变量是 不保留。
答案 1 :(得分:0)
唯一的"变量"你是"访问"是self
。只阻止"捕获"局部变量(self
被认为是局部变量),因为它们是生命周期与范围相关的唯一变量。属性(实际上是方法调用)和实例变量总是被访问"通过一些其他对象指针,因此它们的生命周期与该对象的生命周期相关联。