我曾经从这个问题中清楚地理解过 --> Should IBOutlets be strong or weak under ARC?,但最近我进行了一次讨论,使我完全困惑了。请问有人能否确认以下内容是否正确?(如果这是一个重复的问题,我并不是要违反任何规则..只是需要澄清,因为我比文字更能理解图表..)
在ARC下(MacOSx):
1. view1 = strong 2. MainView = weak (在WindowControllerA中) 3. MainView = strong(在ViewControllerB中) 4. view2 = strong 5. view3 = weak (在ViewcontrollerB中) 6. view3 = strong(在ViewControllerC中)
如果这是正确的,请有人确认一下。
在上面的图示中,我们有一个位于屏幕上的windowControllerA。在windowControllerA的视图中,有两个NSViews。view1属于windowController,但mainView属于实例化的视图控制器ViewControllerB的视图。
ViewControllerB还包含其mainView内的2个视图。view2由viewControllerB拥有,而view3属于另一个已实例化的视图控制器ViewControllerC。
ViewController C有一个它所拥有的视图。
在ARC下(MacOSx):
1. view1 = strong 2. MainView = weak (在WindowControllerA中) 3. MainView = strong(在ViewControllerB中) 4. view2 = strong 5. view3 = weak (在ViewcontrollerB中) 6. view3 = strong(在ViewControllerC中)
如果这是正确的,请有人确认一下。
在上面的图示中,我们有一个位于屏幕上的windowControllerA。在windowControllerA的视图中,有两个NSViews。view1属于windowController,但mainView属于实例化的视图控制器ViewControllerB的视图。
ViewControllerB还包含其mainView内的2个视图。view2由viewControllerB拥有,而view3属于另一个已实例化的视图控制器ViewControllerC。
ViewController C有一个它所拥有的视图。
view
属性已经是强引用。换句话说,你不需要做任何特殊的事情来使它发生。就像我上面所说的,除非你想保留一个视图,即使其余的视图图形被解除分配,否则子视图的outlets可以是弱引用。我无法完全理解你的图表,所以不会对此发表评论。 - Caleb