gpt4 book ai didi

ios - 在 instantiateViewControllerWithIdentifier 之后实例变量不是 nil?

转载 作者:行者123 更新时间:2023-11-29 02:19:15 24 4
gpt4 key购买 nike

我有一个名为 ContentViewControllerPartial 的类,它扩展了 UIViewController。我使用实例化它几次content = [self.storyboard instantiateViewControllerWithIdentifier:@"ContentViewControllerPartial"];期望每次都能获得一个新实例。

在我的类中,我有一个实例变量:

@implementation ContentViewController
...
AVPlayer* mPlayerAV;

在 viewDidLoad 期间实例化:

- (void)viewDidLoad {
[super viewDidLoad];
...
if ( !mPlayerAV )
{
mPlayerAV = [AVPlayer playerWithURL: videoURL];
}

令我惊讶的是,我的每个 ContentViewControllerPartial 类都共享同一个 mPlayerAV 实例!这很明显,因为它在第二次和第三次实例中不为零。

只有当我将 mPlayerAV 转换为属性时,我才得到预期的行为 - mPlayerAV 不再在实例之间共享,并且为零。

这是怎么回事?为什么私有(private)实例变量在实例之间共享?

最佳答案

如果您不将实例变量放在 {} 中,它会创建一个全局变量而不是实例变量。

帖子 here 为 iVars 做好了该做和不该做的工作。

根据提供的代码判断,我相信这可以解释奇怪的行为。希望对您有所帮助。

关于ios - 在 instantiateViewControllerWithIdentifier 之后实例变量不是 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com