gpt4 book ai didi

cocoa - NOOB 从代码中获取结果时出现问题(更具体地说是使用 NSComboBox)

转载 作者:行者123 更新时间:2023-12-03 17:44:20 24 4
gpt4 key购买 nike

我知道这可能是一个简单的问题,但这是我绞尽脑汁想弄清楚的:

我知道这个:

- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index {
return [midiModelContents objectAtIndex:index];

}

将返回所提供索引处的项目。我的问题是,我需要使用什么代码来调用这个例程?

我尝试过这样的事情:

NSString *curData =(comboBox: midiModel objectValueForItemAtIndex:0);

但我收到“错误:'comboBox'未声明”

任何人都可以帮助我理解我搞砸了的概念吗?

最佳答案

首先,您可能想阅读 the Objective-C Programming Language学习向对象(包括您自己)发送消息的正确语法。

您收到无意义的错误消息,因为您编写了(Objective-C 中的)无意义代码。有效的 Objective-C 消息表达式将成功编译并运行,但我认为它不会执行您期望的操作。

您会看到(这是第二件事),comboBox:objectValueForItemAtIndex: 通常不是您发送给自己的消息。当您是组合框的数据源时,组合框会向您发送该消息。数据源是委托(delegate)模式的变体,在 the Cocoa Fundamentals Guide 中有详细描述。 .

(您可以将消息发送给自己,如果您故意想要通过组合框执行相同的对象值检索路径,那么这样做甚至可能是有意义的,但是这个这不是让组合框工作所需要做的。)

语言文档和 Cocoa 基础知识文档都是每个 Cocoa 程序员的必读书目,还有 the Memory Management Guide for Cocoa 。您应该从头到尾阅读所有三个文档。

解决当前问题的方法是将响应 comboBox:objectValueForItemAtIndex: 的对象作为组合框的数据源。您可能会在 IB 中将其连接到创建组合框的同一个 Nib 中。

如果这些都没有任何意义,那么我只能再次建议您阅读这些文档。他们会解释一切。

如果您确实只是想以与组合框相同的方式询问自己对象值(即,您已经让组合框工作并打算以相同的方式获取对象值以用于其他目的),那么您仍然需要阅读 Objective-C 编程语言文档来学习向自己发送该消息的正确语法。

关于cocoa - NOOB 从代码中获取结果时出现问题(更具体地说是使用 NSComboBox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4038290/

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