gpt4 book ai didi

ios - 在 UIViewControllers init 方法中访问 self.view 会导致崩溃

转载 作者:行者123 更新时间:2023-12-01 19:17:43 25 4
gpt4 key购买 nike

我有一个 UIViewController 和一个自定义的 init 方法,如下所示:

- (id)initWithFrame:(CGRect)frame_ customObject:(CustomObject *)object_ {
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
self = [super initWithNibName:@"ArtistViewController_iPad" bundle:nil];
} else {
self = [super initWithNibName:@"ArtistViewController" bundle:nil];
}

[self.view setFrame:frame_];

self.customObject = object_;

return self;
}

但是当 [self.view setFrame:frame_];被调用,它在日志中崩溃:

(空值)
libc++abi.dylib:终止调用抛出异常

这就是我从另一个 UIViewController 分配 UIViewController 的方式:
CGRect frame = self.view.frame;

artistViewController = [[ArtistViewController alloc] initWithFrame:frame customObject:anObject];

框架存在。自我存在于 [super initWithNibName:bundle];

但 self.view 似乎不存在。 nib 文件存在并且连接了它们的 View 导出。

为什么会这样?

最佳答案

您不应该从初始化程序中访问 View 。有几个更合适的地方可以做这项工作,这取决于你真正想要完成的事情。

阅读 View Controller 生命周期以了解您可能希望将修改放在哪里。

http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ViewLoadingandUnloading/ViewLoadingandUnloading.html#//apple_ref/doc/uid/TP40007457-CH10-SW1

关于ios - 在 UIViewControllers init 方法中访问 self.view 会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125398/

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