iOS-__block和__weak区别

一、__weak:

__weak只能在ARC下使用,且只能修饰对象,不能修饰基本数据类型(int等),弱引用,可以block解决循环引用问题。

二、__block:

__block既能再ARC下使用,也能在 MRC下使用。既能修饰对象又能修饰基本数据类型。

  • ARC、MRC区别:__block对象在ARC下可能会导致循环引用,非ARC下会避免循环引用。
  • ARC、MRC共同点:block内对于栈上的数据不能修改,使用__block修饰以后放到了堆上就可以修改了。

如有错误之处,望留言指正。

你可能感兴趣的:(iOS-__block和__weak区别)