gpt4 book ai didi

objective-c - 为什么 IBAction 的发送者类型必须是 id?

转载 作者:行者123 更新时间:2023-12-03 17:01:51 26 4
gpt4 key购买 nike

我正在通过“Mac OS X 的 Cocoa 编程(Objective-C 版本)”学习 Cocoa,每当我使用 Interface Builder 创建按钮时,我都必须将它与我当前正在工作的类之一连接起来与。

当我控制从按钮单击拖动到我的 AppDelegate.h 文件时,Xcode 会自动将按钮挂接到我的 AppDelegate 类。如果我选择“操作”,它将创建一个如下方法:

- (IBAction)onButtonPress:(id)sender {
}

Objective-C 的方法是这样工作的:

- (returnType)methodName:(typeOfFirstArgument)firstArgumentName (typeOfSecondeArgument)secondArgumentName

为什么我必须为发送者使用类型 id 而不是 NSButton?我知道我用一个按钮连接了该方法。因此,我希望发送者是 NSButton 类型的对象。

我尝试过,但没有成功。

最佳答案

类型不必是id。您绝对可以更改参数的类型和名称,可以在创建连接时使用弹出窗口,也可以在代码中更改。

id 是一种类型,意思是“指向任何 ObjC 对象的指针”。指向特定类的指针也同样有效:

- (IBAction)onButtonPress:(NSButton *)importantButton;

关于objective-c - 为什么 IBAction 的发送者类型必须是 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36167964/

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