在非ARC iOS Objective-C代码中使用__weak有什么缺点吗?

Cla*_*ges 2 iphone objective-c ios

我正在编写iOS Objective-C代码,而不是ARC.我更喜欢

__weak MyClass *myWeakIVar;
Run Code Online (Sandbox Code Playgroud)

例如,

MyClass *myWeakIvar; // weak
Run Code Online (Sandbox Code Playgroud)

它不仅对我来说更好,而且如果我在垃圾收集平台等上使用这些代码,我会得到__weak指令的好处.这有什么缺点吗?换句话说,它目前是等同于(再次,没有ARC)iOS上的noop吗?

sho*_*sti 7

根据这个帖子,__weak如果禁用ARC,iOS上什么都不做.

  • 现在使用ARC编译器,__ weak和__strong在iOS中具有意义. (3认同)
  • 正确,但我仍然会推荐该模式,因为编译器有朝一日可能会将其用于某些事情. (2认同)