从故事板加载的视图控制器是强还是弱?

时间:2014-09-16 14:57:45

标签: ios cocoa-touch

我更习惯使用笔尖而不是故事板,而使用笔尖,大多数网点都很弱。

说我想做这样的事情:

self.menuViewController = [storyboard instantiateViewControllerWithIdentifier:@"MenuViewController"];

menuViewController属性应该是strong还是weak

2 个答案:

答案 0 :(得分:0)

应该很强大。如果将其配置为弱,则将在下一行解除分配。

答案 1 :(得分:-1)

坦率地说我有点困惑,我的回答并没有完全解决问题,但却发现了意想不到的事情。

我认为

UIViewController *weakOrStrongViewController = [storyboard instantiateViewControllerWithIdentifier:@"viewControllerID"];

类似于 - initWithNibName方法

我们应该将这些对象保留为strong引用。

但是当我做了以下事情时:

__weak UIViewController *weakOrStrongViewController = [storyboard instantiateViewControllerWithIdentifier:@"viewControllerID"];

weakOrStrongViewController尚未在下一行解除分配。此外,我可以很容易地提出并解雇。

我还发现retainCount是:(我知道它不推荐,可能会误导)

NSLog(@"Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)self.presentedViewController));

Retain count is 5

此方法在官方文档中完全描述。