Objective-C ARC下IBOutlet属性是用weak还是strong来修饰

1、苹果官方说明:

From a practical perspective, in iOS and OS X outlets should be defined as declared properties. 
Outlets should generally be weak, except for those from File’s Owner to top-level objects in a nib file (or, in iOS, a storyboard scene) which should be strong. 
Outlets that you create should therefore typically be weak, because:

Outlets that you create to subviews of a view controller’s view or a window controller’s window, 
for example, are arbitrary references between objects that do not imply ownership.
The strong outlets are frequently specified by framework classes (for example, UIViewController’s view outlet, or NSWindowController’s window outlet).

从实践的角度来说,iOS和OSX中的IBOutlet应该定义为属性(即编译器自动生成getter和setter)。  

IBOutlet通常是用weak来修饰,除非它是File's Owner的直接属性。

weak

避免循环引用

参考链接:

https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html

原文地址:https://www.cnblogs.com/yangwenhuan/p/9811132.html