gpt4 book ai didi

objective-c - 字符串比较和文本字段操作

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

我今天刚刚开始使用 Xcode 来制作 Cocoa 应用程序。

我正在 YouTube 上观看视频,试图让自己继续前进。既然我已经切换到 Mac 应用程序,我想开始构建 Mac 应用程序。我曾经在 Windows 上使用 .NET 进行编程。

好吧,我首先创建一个小的“登录”窗口。在 Xcode 中,我遇到此 If 语句的某种类型的错误。这并不是真正的错误,而更像是警告。它工作得很好,但我想确保我以正确的方式做这件事。基本上它所做的就是检查以确保用户名和密码字段中包含一些内容。

请记住,这确实是我一生中编写的第一个 Objective-C 代码。

#import "AppController.h"

@implementation AppController

NSString * quser = @"f";
NSString * qpass = @"f";

- (IBAction)checkforErrors:(id)sender {

//the next couple of lines is where I'm getting the error msg...


if (qpass == @"t") {
if (qpass = @"t") {
[label setStringValue:@"Username and Password are valid."];
}
}


}

- (IBAction)usernameEntered:(id)sender {

quser = @"t";

}

- (IBAction)passwordEntered:(id)sender {

qpass = @"t";

}

我做的变量事情正确吗?我正在尝试利用我的 JavaScript 和 PHP 知识来帮助我解决这个问题(即使它们是完全不同的语言!!:P)。

还有一件事我想问一下。在 Xcode 中,我可以选择在文本输入后或输入时在文本字段上发送操作。问题是,如果您输入密码并向下单击按钮来检查错误,则它不起作用。您必须单击其他位置,然后单击该按钮。有没有办法发送“onTextChange”操作?

另外,如果您有学习 Objective-C/Cocoa 的良好资源,我很乐意拥有它们。

最佳答案

好吧,让我们从简单的部分开始:

    if (qpass == @"t") {
if (qpass = @"t") {
[label setStringValue:@"Username and Password are valid."];
}
}

这些行有两个问题。首先,所有带有*的东西在 Objective-C 中是一个指针。当你与 == 进行比较时您正在比较指针的位置,而不是字符串的内容。您想使用isEqualToString:相反。

其次,在你的第二个if声明,您正在做作业。我还假设您不想检查 @"t"两次?

You have to click somewhere else and then click the button. Is there anyway to send the action "onTextChange?"

您想查看 UITextFieldDelegate ,和textField:shouldChangeCharactersInRange:replacementString:尤其。此外,可以找到有关协议(protocol)的一些信息 here .

最后,一些学习资源:
Introduction to Objective-C on Treehouse
Apple's Getting Started guide

关于objective-c - 字符串比较和文本字段操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15778016/

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