终于理解weakSelf和strongSelf了
2020-05-11 本文已影响0人
AlwaysBlue
https://www.jianshu.com/p/79d31eb822db
https://www.jianshu.com/p/d68d5bb431c8
https://www.jianshu.com/p/701da54bd78c
// MRC
xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m
// ARC
xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc -fobjc-arc -fobjc-runtime=ios-8.0.0 main.m
block内的__strong是会对对象retain +1的这个问题的关键是理解:
1.__strong typeof(weakPerson) strongPerson = weakPerson;是可以对弱引用的对象retain+1的。
2.只有产生了循环引用才会内部不会释放 只要保证block内使用的strong对象引用计数不是0即可。
3.不用担心引用循环引用而产生内存泄漏,是因为strongPerson是个局部变量,block执行完毕就会被销毁,循环被破坏。