gpt4 book ai didi

objective-c - 设置委托(delegate) :self generates a caution flag

转载 作者:太空狗 更新时间:2023-10-30 03:40:08 25 4
gpt4 key购买 nike

我正在尝试学习 Objective C,但我的其中一个类(class)的代码有错误,我不知道如何解决。代码:

 //  AppController.m

#import "AppController.h"

@implementation AppController

- (id)init
{
[super init];
speechSynth = [[NSSpeechSynthesizer alloc] initWithVoice:nil];
[speechSynth setDelegate:self];
voiceList = [[NSSpeechSynthesizer availableVoices] retain];
Return self;
}

来自 [speechSynth setDelegate:self];我收到错误消息:将“AppController *”发送到不兼容类型“id ”的参数。该程序编译时带有警告标志,并且似乎可以正确运行。我已经将我的代码与作者的代码进行了比较,没有发现任何差异,而且我的所有搜索都没有表明我应该在这一行出现错误。这本书是为 Xcode 3 编写的,我使用的是 Xcode 4.0.2。

如有任何建议或为我指明正确的方向,我们将不胜感激。谢谢。

最佳答案

Xcode 警告您 setDelegate 方法需要一个实现了 NSSpeechSynthesizerDelagate 协议(protocol)的类的实例。现在,你有,但你可能只是忘记声明你有。在您的类(class)声明中,更改

@class AppController : NSObject

@class AppController : NSObject<NSSpeechSynthesizerDelegate>

告诉世界“我服从 NSSpeechSynthesizerDelegate!”,并消除警告。你永远不会知道 - 你可能会收到警告,你忘记了实现一些非可选的委托(delegate)方法,并在某处为自己省下一个烦人的错误。

关于objective-c - 设置委托(delegate) :self generates a caution flag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018636/

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