gpt4 book ai didi

IOS super 关键字导致错误

转载 作者:行者123 更新时间:2023-11-29 04:56:36 27 4
gpt4 key购买 nike

我正在更新一个不是我编写的应用程序中的代码,同时基本上自学 objective-c ,所以我是这方面的初学者。

我有一个名为 TableViewController 的类,其中有一个方法,一旦 JSON feed 成功获取一些数据就会触发该方法。该方法称为:

- (void)JSONFetch:(MYJSONFetch *)fetch didDownloadCollection:(id)collection 
{
//CODE HERE
}

我有很多从该类继承的其他类,它们依次调用该方法自己的版本,并将自己的功能添加到组合中。例如,我有一个名为 CategoryViewController 的类,其中定义了此方法:

- (void)JSONFetch:(MYJSONFetch *)fetch didDownloadCollection:(id)collection 
{
[super didDownloadCollection:collection];
}

注意那里的 SUPER 调用,理想情况下它应该能够访问父方法中的所有代码以及它自己的代码。

在类别 Controller 上的 .h 文件中,我有以下内容:

#import "MYTableViewController.h"

@interface MYCategoryViewController : MYTableViewController
{
//code here
}

所以它应该能够“看到”其他代码,但我在 SUPER 行上收到此错误:

Instance method '-didDownloadCollection' not found (return type defaults to 'id')

这大概意味着它实际上看不到父方法。据我所知,它没有设置为私有(private),.h 明确提到了继承,其他方法调用愉快地在两者之间来回反弹。

所以,我所做的一些事情破坏了这一切,但我不知道是什么。我隐约知道它一定在 MYJSONFetch 代码中,但我不确定。

有人对此有任何了解,花了几个小时试图弄清楚为什么它看不到父方法。

最佳答案

方法是

- (void)JSONFetch:(MYJSONFetch *)fetch didDownloadCollection:(id)collection

所以你必须打电话

[super JSONFetch:fetch didDownloadCollection:collection];

关于IOS super 关键字导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850626/

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