2010-04-05 57 views
0
其他類

我有一些麻煩搞清楚至調用方法,我在其他如何調用從

#import "myNewClass.h" 
#import "MainViewController.h" 

@implementation MainViewController 

@synthesize txtUsername; 
@synthesize txtPassword; 
@synthesize lblUserMessage; 

- (IBAction)calculateSecret { 

NSString *usec = [self calculateSecretForUser:txtUsername.text 
         withPassword:txtPassword.text]; 

    [lblUserMessage setText:usec]; 
    [usec release]; 
} 
... 

myNewClass.h

#import <Foundation/Foundation.h> 

@interface myNewClass : NSObject { 
} 
- (NSString*)CalculateSecretForUser:(NSString *)user withPassword:(NSString *)pwd; 

@end 

的方法myNewClass.m

#import "myNewClass.h" 

@implementation myNewClass 

- (NSString*)CalculateSecretForUser:(NSString *)user withPassword:(NSString *)pwd 
{ 
    NSString *a = [[NSString alloc] initWithFormat:@"%@ -> %@", user, pwd]; 
    return a; 
} 

@end 

的方法CalculateSecretForUser總是說

'MainViewController' 可不迴應 '-calculateSecretForUser:withPassword:'

我究竟做錯了什麼?

回答

2

關鍵字「自我」是指您當前班級的實例。因此,您正在將消息calculateSecretForUser:withPassword發送到MainViewController,該消息沒有實現它。你應該實例化myNewClass並將其稱爲:

- (IBAction)calculateSecret { 
    myNewClass *calculator = [[myNewClass alloc] init]; 

    NSString *usec = [calculator calculateSecretForUser:txtUsername.text 
         withPassword:txtPassword.text]; 

    [lblUserMessage setText:usec]; 
    [usec release]; 
    [calculator release]; 
} 
+0

非常感謝你:) – balexandre 2010-04-05 08:01:38