调用我的方法我做错了什么?

时间:2011-11-22 16:56:44

标签: iphone objective-c methods

我不明白。我是目标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

7 个答案:

答案 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];