cuốn sách gpt4 ai đã làm

iOS - UIViewController - 覆盖 UIViewController 子类链中的 getter 时出现运行时错误

In lại Tác giả: Walker 123 更新时间:2023-11-29 03:50:45 25 4
mua khóa gpt4 Nike

这里是 iOS 新手。

我有一个类,它是 UIViewController 的子类,称为 CommonVC。它没有与其直接关联的场景。它在 .h 文件中声明一个属性:

@property (strong, nonatomic) SomeClass *someClass;

我修改了我的场景 View Controller 之一,将 CommonVC 作为父类(super class)而不是 UIViewContoller:

@interface SceneViewController : CommonVC

在 SceneViewController 中,我为属性创建了一个惰性实例化 getter:

- (SomeClass *)someClass 
{
return self.someClass ? self.someClass :
(self.someClass = [[SomeClass alloc] initWithData:@"xxx"]);
}

编译正常,但在运行时因 EXC_BAD_ACCESS(code=2,...) 崩溃。调试器指向覆盖方法,并且“self”为零(0x00000000)。

对 getter (self.someClass) 的第一个引用是在 viewDidLoad 方法中。我认为 View Controller 及其父类(super class)此时已经被实例化。

Chuyện gì đang xảy ra vậy?

Cảm ơn.

câu trả lời hay nhất

return self.someClass ? self.someClass

这是一个无限循环。代码 self.someClass 相当于 [self someClass];这样就会被无休止地调用。您需要将 self.someClass 更改为 _someClass。

关于iOS - UIViewController - 覆盖 UIViewController 子类链中的 getter 时出现运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110179/

25 4 0
Đề xuất bài viết: PHP ID 不通过 url
Đề xuất bài viết: mysql - 检查数据库模式 mysql
Đề xuất bài viết: php - 依赖 "mysql_insert_id"
Đề xuất bài viết: ios - 在 UIviewController 中添加 UITableView
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress