大佬教程收集整理的这篇文章主要介绍了在Objective-C块中使用typeof(self)来声明一个强引用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
typeof(self) __weak weakSelf = self; void (^block)() = ^{ typeof(weakSelf) strongSelf = weakSelf; // ...more code... };
问题是,将第二种类型(weakSelf)更改为typeof(self)会导致在块中捕获self吗?
例如:
typeof(self) __weak weakSelf = self; void (^block)() = ^{ typeof(self) strongSelf = weakSelf; // does using typeof(self) here end up capturing self? // ...more code... };
如果没有捕获自我,是否有任何理由偏爱这种或那种方式?
#import <Foundation/Foundation.h> int main(int argc,char *argv[]) { @autoreleasepool { NSObject *o = [NSObject new]; __weak typeof(o) weakO = o; void(^b)() = ^{ __strong typeof(o) strongO = weakO; NSLog(@"o: %@",strongO); }; o = nil; b(); /* outputs: 2015-05-15 16:52:09.225 Untitled[28092:2051417] o: (null) */ } }
以上是大佬教程为你收集整理的在Objective-C块中使用typeof(self)来声明一个强引用全部内容,希望文章能够帮你解决在Objective-C块中使用typeof(self)来声明一个强引用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。