我不明白。我是目标c的新手,我不知道我在这里做错了什么。构建代码时出现以下错误:“类方法”+ ValidateUserInfo:strPwd:'未找到“。我相信这对你们中的一些人来说很简单,我只是看到了我的错误。调用方法ValidateUserInfo?
@implementation LoginViewController
-(IBAction)CheckInfo:(id)sender
{
NSString *strUserName = [[txtUsername text] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSString *strPass = [[txtPass text] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
[LoginViewController ValidateUserInfo:strUserName myPass:strPass];
}
+(void)ValidateUserInfo:(NSString *)name myPass:(NSString*)strPwd
{
NSLog(@"VALIDATE user: %@",name);
NSLog(@"VALIDATE pwd: %@",strPwd);
}
@end
答案 0 :(得分:4)
看起来很好,是编译器警告吗?如果是这样,那将是因为您没有在头文件(.h)中声明该方法......
在标题中的@end
之前添加以下内容...
+(void)ValidateUserInfo:(NSString *)name myPass:(NSString*)strPwd;
答案 1 :(得分:1)
该错误与您的代码示例不符。你确定这是给你错误的代码吗?你能从.h文件中显示方法的声明吗?
您的错误表示名为
的方法ValidateUserInfo:strPwd
找不到,但您的代码调用并实现了一个名为
的方法ValidateUserInfo:myPass.
另请注意,方法名称应以小写字母开头。
答案 2 :(得分:0)
您正在呼叫ValidateUserInfo:strPwd:
,但根据您的代码,它应该是ValidateUserInfo:myPass
!
答案 3 :(得分:0)
+(加号)代表类方法而不是
- (减号)代表对象方法
-(void)
或+(void)
是两个完全不同的东西。从您给出的一小段代码我不认为ValidateUserInfo应该是一个“类”方法
所以.......
+(void)ValidateUserInfo:(NSString *)name myPass:(NSString*)strPwd
{
NSLog(@"VALIDATE user: %@",name);
NSLog(@"VALIDATE pwd: %@",strPwd);
}
应该是
-(void)ValidateUserInfo:(NSString *)name myPass:(NSString*)strPwd
{
NSLog(@"VALIDATE user: %@",name);
NSLog(@"VALIDATE pwd: %@",strPwd);
}
答案 4 :(得分:0)
将+(void)ValidateUserInfo:(NSString *)name myPass:(NSString*)strPwd;
添加到@interface LoginViewController
(更好的解决方案)。
或者只是在+(void)ValidateUserInfo:(NSString *)name myPass:(NSString*)strPwd
之前实施-(IBAction)CheckInfo:(id)sender
。
答案 5 :(得分:0)
在.h中,请确保声明方法。例如:
@interface LoginViewController:UIViewController {
}
+(void)ValidateUserInfo:(NSString )name myPass:(NSString )strPwd;
@end
另外,作为旁注,您的方法名称应以小写字母开头。
答案 6 :(得分:-2)
变化:
[LoginViewController ValidateUserInfo:strUserName myPass:strPass];
为:
[self ValidateUserInfo:strUserName myPass:strPass];