Objective c 字符串帮助-目标C

Objective c 字符串帮助-目标C,objective-c,xcode,string,Objective C,Xcode,String,我正在尝试制作一个应用程序,它在插入时会响应您的命令。因此,您可以在第一个框中键入任何文本,然后按enter键。它将在第二个字段中响应。我不确定这里的编码是如何完成的。我对“if inputbox text=@”这个词有点问题,我很确定它已经完全关闭了 #导入“HeliosControl.h” @HeliosControl的实现 -(iAction)退出按钮:(NSButton*)发送器{ } -(iAction)发送按钮:(NSButton*)发送器{ if(inputBox*******)/

我正在尝试制作一个应用程序,它在插入时会响应您的命令。因此,您可以在第一个框中键入任何文本,然后按enter键。它将在第二个字段中响应。我不确定这里的编码是如何完成的。我对“if inputbox text=@”这个词有点问题,我很确定它已经完全关闭了

#导入“HeliosControl.h”
@HeliosControl的实现
-(iAction)退出按钮:(NSButton*)发送器{
}
-(iAction)发送按钮:(NSButton*)发送器{
if(inputBox*******)/您想要
if([[inputBox stringValue]isEqualToString:@“whatever”])
(假设inputBox是一个NSTextField-否则,使用该类的适当方法从中获取字符串)


哦,你可以用
[NSApp terminate:self]
退出应用程序,Chuck的答案很正确,但我认为值得进一步说明你为什么会遇到问题。你的工作中有很多错误:

“如果输入框文本=@”无论什么”

a) 在目标C中,必须使用==检查x是否等于y。因此if语句为:

if (myFirstVariable == mySecondVariable) { // Do something }
b) 字符串变量实际上比只包含数字的变量更复杂。该变量的值实际上是存储该变量的内存地址。此外,您通常只使用指向该变量的指针(在声明变量时用*表示)

这意味着,如果键入以下内容:

if (myFirstVariable == @"Some text")

然后你实际上只是检查它们是否都指向相同的内存位!而不是文本是否相同。这就是为什么正如Chuck解释的那样,你需要使用[isEqualToString]方法


希望有帮助!

字符串的值不是很正确。变量的值是字符串的地址,这是您提到的数字。字符串的值,就您所说的复合类型只有一个值而言,实际上是字符串。很好。反正我已经投了更高的票。我只是想确保人们理解d关于指针,因为很多Objective-C初学者在思考自己是什么以及他们的意思时花了很多时间。感谢chuck的代码!它终于起作用了。只是[NSApp terminate:self]给了我一个错误代码。@chuck,看起来像Java,但语法奇怪。这应该是
@“whatever”
或者更确切地说是
@“whatever”
?对于好奇的Objective-C来说…@Yar:是的,它有点像Java,因为Java是基于Objective-C的。我错过了结束语。小心从代码中退出应用程序。你不应该这样做,只有用户可以决定(按home按钮)。此答案中的代码可以工作,但它是一个私有API,苹果可能会因此决定拒绝您的应用程序。
if (myFirstVariable == @"Some text")
if (myFirstStringVariable == mySecondStringVariable)