有些人总是说使用弱自我内部块,但有些人说使用弱自我的块被复制,不是永远使用总是。
样品1:
self.handler = ^(ID response,NSError *error){ self.newresponse = response; //use weak self here};
样品2:
使用弱自我;
__weak myVIEwController *weakSelf = self;[UIVIEw animateWithDuration:interval delay:0.0 options:curve animations:^{ [weakSelf.vIEw.supervIEw settransform:CGAffinetransformMakeTranslation(0,-106)]; //in above is it use of weak is neassary }completion:^(BOol finished){}];
没有弱自我;
__weak myVIEwController *weakSelf = self;[UIVIEw animateWithDuration:interval delay:0.0 options:curve animations:^{ [myVIEwController.vIEw.supervIEw settransform:CGAffinetransformMakeTranslation(0,-106)];}completion:^(BOol finished){}];
在上面的例子中,哪些是正确的…?
**我使用ARC
在你的例子中,你不是在self中引用你的块,你只是使用块内联UIVIEw animateWithDuration :,因此没有必要使用__weak myVIEwController * weakSelf = self;
为什么会这样?因为一个块将保留对它使用的任何变量的强引用。这包括自我。现在如果类实例本身保持对块的强引用,并且块保持对类实例的强引用,那么您将有一个保留周期,这将导致内存泄漏。
总结以上是内存溢出为你收集整理的可可触摸 – 是否有必要使用弱引用自我总是在块…?全部内容,希望文章能够帮你解决可可触摸 – 是否有必要使用弱引用自我总是在块…?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)