Objective-C 错误“'XYZPerson' 没有可见的 @interface 声明选择器 'saySomething'

2023-11-29

我对 Objective-C 确实很陌生,当我练习书本上的练习时,我真的被困在这里了。请帮助我解决这个问题,我已经思考了三个多小时可能导致此错误的原因。我还是没明白!

此致, 拉杰.

提前致谢 !

main.m

#import <Foundation/Foundation.h>
#import "XYZPerson.h"
#import "XYZShout.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {

        //XYZPerson *some = [[XYZPerson alloc]init];

        XYZShout *some = [[XYZShout alloc]init];
        [some sayHello];



        // insert code here...
       // NSLog(@"Hello, World!");

    }
    return 0;
}

XYZPerson.h

#import <Foundation/Foundation.h>
@interface XYZPerson : NSObject

@property NSString *firstName;
@property NSString *secondName;
@property NSDate *dob;

-(void) saySomething;
-(void) sayHello;

@end

XYZPerson.m

#import "XYZPerson.h"
@implementation XYZPerson

-(void) sayHello {
    [self saySomething:@"Hello all"];
}

-(void) saySomething:(NSString *)greet {
    NSLog(@"%@", greet);
}

@end

XYZShout.h

#import "XYZPerson.h"

@interface XYZShout : XYZPerson

// -(void) saySomething;

@end

XYZShout.m

#import "XYZShout.h"

@implementation XYZShout

-(void) saySomething:(NSString *)greet {
    NSString *upperGreet = [greet uppercaseString];
    [super saySomething:upperGreet];    // this is where I get the error mentioned above
}

@end

成功了!感谢@MatthewD、@trojanfoe、@JFS 的大力帮助:)


看来您正在测试继承,所以我假设XYZShout应该是源自XYZPerson。如果是这样,请遵循@JFS 的建议并确保它确实派生:

XYZShout.h:

#import <Foundation/Foundation.h>
#import "XYZPerson.h"

@interface XYZShout : XYZPerson

- (void)saySomething:(NSString *)greet;

@end

并且还纠正了定义saySomething in XYZPerson(你错过了参数):

XYZPerson.h:

#import <Foundation/Foundation.h>
@interface XYZPerson : NSObject

@property NSString *firstName;
@property NSString *secondName;
@property NSDate *dob;

- (void)saySomething:(NSString *)greet;
//                   ^^^^^^^^^^^^^^^^^
- (void)sayHello;

@end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective-C 错误“'XYZPerson' 没有可见的 @interface 声明选择器 'saySomething' 的相关文章

  • 管理一堆具有依赖关系的 NSOperation

    我正在开发一个创建内容并将其发送到现有后端的应用程序 内容是标题 图片和位置 没有什么花哨 后端有点复杂 所以这是我必须做的 让用户拍照 输入标题并授权地图使用其位置 为帖子生成唯一标识符 在后台创建帖子 上传图片 刷新用户界面 我使用了几
  • UITableView行高不变

    我创建了一个自定义单元格 我有一系列字典 对于我需要创建的字典值UILables 每个单元可能包含不同数量的UILabels 所以按照我的习惯UITableViewCell类我就是这样做的 void generateCell BOOL is
  • 如何使用 MPMusicPlayerController 播放音乐?

    任何人都可以建议我如何在我的应用程序中使用 MPMusicPlayerController 播放音乐 任何人的帮助将不胜感激 谢谢你 莫尼什 创建一个MPMediaPickerController这样你就可以从 iPod 中选择一些音乐 然
  • NSAttributedString 的 AutoLayout 行高计算错误

    我的应用程序从 API 中提取 HTML 将其转换为NSAttributedString 为了允许可点击的链接 并将其写入自动布局表中的一行 问题是 每当我调用这种类型的单元格时 高度都会被错误计算并且内容会被截断 我尝试了不同的行高计算实
  • 如何检测按下的返回键并使用 UIKeyInput 协议对其进行响应?

    我有一个表视图 显示我希望用户能够编辑的列表 为了节省空间 并且让我的视图更容易看清 我创建了一个符合 UIKeyInput 协议的自定义工具栏 这样我就可以拉起键盘而无需使用任何文本字段 到目前为止 一切都很好 我有一个可变字符串正在处理
  • 在 Cocoa Mac OSX 中设置 FirstResponder 时出现问题

    我正在开发一个小应用程序只是为了学习可可 并且我很难将 FirstResponder 设置为某些 NSTextFields 当视图打开时 我希望选择第一个 NSTextField clientNumber 因此我在 loadView 方法末
  • 如何让 Chrome Cast 在 iOS 后台运行?

    我有一个简单的问题 当您进入 iPhone 的主屏幕并且不退出应用程序时 chrome Cast 设备会停止在屏幕上播放视频 当应用程序在后台运行时 我如何才能保持播放状态 如果您有一个视频应用程序并且它在投射设备中运行 您可能需要以下行为
  • 理解 Objective-C 中选择器的唯一性

    我无法理解 选择器 的部分功能 如苹果指南中所述 我把我感到困惑的部分加粗了 在 Objective C 中 选择器有两个含义 可以用来参考 当在源代码消息中使用方法时 只需使用方法的名称 到一个物体 不过 它也指的是唯一标识符 编译源代码
  • iOS-将图像转为视频时,CVPixelBufferCreate内存无法正确释放

    我正在将图像制作成视频 但总是因为内存警告而崩溃 分配太多CVPixelBufferCreate 我不知道如何正确处理 我看过很多类似的主题 但没有一个能解决我的问题 这是我的代码 void writeImagesArray NSArray
  • 如何设置 ABPeoplePickerNavigationController 的提示?

    这是我用来调用人员选择器的代码 但提示标签文本不会更改 ABPeoplePickerNavigationController picker ABPeoplePickerNavigationController alloc init pick
  • 如何使用群组在 iPhone 和 Apple Watch 之间共享数据?

    我是 Watchkit 开发新手 无法找到在 iPhone 和 iWatch 之间共享数据的解决方案 请帮助我 我希望使用组来共享数据 我们可以使用组在 iPhone 和 iWatch 之间传递数据 基本上iWatch不能做任何处理 我们需
  • SKScene和SKView的paused属性之间的区别

    我使用以下代码暂停 SKScene self paused YES 然而 根据这个answer https stackoverflow com a 21593852 2043580 by 安德烈 戈尔杰耶夫 https stackoverf
  • 当表格为空时 iPhone UITableView 图像背景

    我想当我的 UITableView 为空时显示图像背景 目前 我尝试将 UIImageView 添加到包含表格的视图控制器 但 XCode 不允许这样做 有没有好的方法呢 您可以在表视图顶部添加图像视图或更改表视图的背景视图 Check i
  • 如何使用呼叫目录扩展来识别应用程序中的来电?

    我正在研究callKit框架 我发现通过使用呼叫目录扩展 我们可以识别来电电话号码 我的问题是如何在 iOS 应用程序中实现呼叫目录扩展来识别来电详细信息 我在 Objective C 工作 让一个数 919876xxxxx 使用此方法添加
  • 在后台运行 URL 请求

    我想在一定的时间间隔内发出 url 请求 例如 每 10 分钟应用程序应该发出一次 url 调用并获取一些 json 数据 应用程序在后台运行时应该能够执行此操作 这可以做到吗 如果是这样 这是否违反 Apple 服务条款 有什么限制吗 i
  • 播放循环声音的最简单方法是什么?

    在 iPhone 应用程序中播放循环声音的最简单方法是什么 可能最简单的解决方案是使用AVA音频播放器 http developer apple com library ios DOCUMENTATION AVFoundation Refe
  • 每次打开应用程序时运行动画

    我在 viewDidLoad 中有一个动画 该动画在应用程序第一次启动时运行 如果退出应用程序 然后再次启动它 动画将不会播放 我该如何让动画在每次打开应用程序时播放 谢谢你的帮助 在 iOS 4 中 按主页按钮不会终止应用程序 而是将其挂
  • 如何在 Objective-C 中解析包含 XML 的 NSString?

    在我的 iPhone 应用程序中 我有以下 NSString NSString myxml
  • 保留rootViewController?

    我想知道是否有人可以帮助我解决下面代码中的内存管理问题 我对 rootController 特别感兴趣 当我执行 initWithRootViewController 时它是否会被保留 或者它是否 这是我的猜测 通过窗口 addSubVie
  • 用于在某个日期或活动打开 iCal 应用程序的 URL 方案?

    Apple URL 方案参考 https developer apple com library ios featuredarticles iPhoneURLScheme Reference Introduction Introductio

随机推荐

  • Transformers PreTrainedTokenizer add_tokens 功能

    参考文档在 Huggingface 的很棒的变形金刚库中 我发现了add tokens功能 tokenizer BertTokenizer from pretrained bert base uncased model BertModel
  • 如何在QTableWidget中显示点击QPushButton的行

    我想删除行QPushButton被点击怎么可能我认为使用插槽是合理的 但如何做到这一点不知道 如果您有任何想法如何获取一行选定的按钮请分享 谢谢 这是我的桌子 这是我向 QTableWidget 添加行的代码 MainWindow Main
  • 使用本地图像在Windows Phone 8.1的webview中显示

    我在 Windows Phone 8 1 中创建了混合应用程序 我的一个页面使用了 webview 控件 它上面有一个 img 元素 我有一个小图像作为我的应用程序构建的一部分 复制到输出目录 设置为 始终复制 我已按照此页面的说明进行操作
  • 什么是软件框架? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 有人可以解释一下什么是软件框架吗 为什么我们需要一个框架 框架如何使编程变得更容易 我很
  • php 中 at-sign 的有效用例

    at 符号用于隐藏错误消息 据我所知 绝对没有使用它的用例或借口 您可以通过更改 php ini 设置来隐藏生产中的错误 同时仍将错误输出到日志文件 符号使其他程序员很难确定问题出在哪里 当您开发时 错误消息是您的朋友 快速发现错误并修复它
  • 需要列出 SQL Server 数据库中的所有触发器以及表名称和表架构

    我需要列出 SQL Server 数据库中的所有触发器以及表名称和表架构 我就快到了 SELECT trigger name name trigger owner USER NAME uid table schema table name
  • 有什么办法可以拯救脏画布吗?

    我正在使用 HTML5 画布制作视频屏幕截图 视频托管在其他地方 除了 toDataURL 之外一切正常 因为画布很脏 所以 我想知道 有什么办法可以将这个画布图像保存在计算机上吗 我认为答案是否定的 但希望有一些黑客来完成这件事 除了将视
  • Hangfire 激活器未处理

    我遇到了 Hangfire 无法在 NET 5 上的 WebApi 中处理它实例的对象的问题 这是我在 ConfigureServices 中的配置 非常标准 顺便说一句 services AddScoped
  • Slim 框架/公共文件夹重定向

    我正在使用 Slim Framework v3 我已经设置了 API 如果我访问它可以顺利工作http localhost 8080 slimapp public 我有默认的目录结构 我的示例 API 端点是http localhost 8
  • 为什么“Range(...).End(xlDown).Row”返回 1048576?

    我想在 VBA 的 for 循环中复制一些值 因此我通过以下方式计算限制 For iCounter 1 To Range End xlDown Row Range Row 1 Sadly Range End xlDown Row回报1048
  • ReadFile() 说失败,但错误代码是 ERROR_SUCCESS

    我在用着ReadFile 在 Windows 上从串行端口读取数据 这段代码在某个时间点工作得很好 但现在失败了 我正在尝试找出问题的根源 所以我怀疑这是串行配置或超时的问题 因为这些都没有改变 ReadFile 返回 false 表明发生
  • 无法删除 JSESSIONID cookie

    我正在使用带有 HttpServletRequest 和响应的 Spring 控制器来删除 cookie 当我需要删除 cookie 时 我有以下代码 Cookie allCookies request getCookies for int
  • Android 4.3 裁剪图库 resultCode 取消

    我的 Galaxy Nexus 现在在 Android 4 3 上运行 允许我使用这个新版本测试我的应用程序 除了裁剪之外 一切似乎都很好 我有一个应用程序 它使用相机拍照 然后通过图库应用程序裁剪图像 我还可以从图库中选择一张图片并进行裁
  • 这是合法的 C++ 代码吗? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 代码来自here 鉴于在 C 中你可以使用 C 库 你会说下面的代码是合法的 C 代码吗
  • 在给定标签处将 XML 文件拆分为多个

    我想将一个 XML 文件拆分为多个文件 我的工作站仅限于带有 Xalan 2 7 1 的 Eclipse Mars 我也可以使用Python 但以前从未使用过它
  • 在 asp.net mvc 中显示数据库中的图像

    我有一个包含用户 ID 和图像列的视图 这是我尝试检索图像的方法 但我不断收到一个带有红色 x 的框 而不是实际图像 View td img src alt gt td 控制器 public FileContentResult Displa
  • 在 Linux 下从 Python 编辑 Windows 注册表

    我正在寻找一个Python API 或者我愿意绑定的C API 来在Linux系统中编辑从XP到7的Windows注册表 Windows 目标将是 Linux 下安装的卷 如果不存在 我愿意编写一个库 因此 注册表上的任何文档或内部结构也会
  • 在 Netbeans 中添加新的 Web 服务

    我正在尝试使用 netbeans 在 java 中构建 myspace 应用程序 其中 app 尝试更新我的帐户 好友更新以及所有此类内容 twitter 的 nebeans 网站上有一个类似的教程 但是当我尝试添加 API 地址时Mysp
  • 如何调试通过 UpdateListItems SOAP API 在 SharePoint 中创建列表项时出现的错误?

    我在调试 SharePoint SOAP 调用以创建列表项时遇到了非常困难的情况 我发送的 SOAP 主体是
  • Objective-C 错误“'XYZPerson' 没有可见的 @interface 声明选择器 'saySomething'

    我对 Objective C 确实很陌生 当我练习书本上的练习时 我真的被困在这里了 请帮助我解决这个问题 我已经思考了三个多小时可能导致此错误的原因 我还是没明白 此致 拉杰 提前致谢 main m import