如何将参数传递给外部类方法?

时间:2014-05-13 13:24:50

标签: ios objective-c

我正在尝试做非常简单的操作。

在" TestFile.h"文件我声明了属性:

@property (nonatomic) NSDictionary *justTest;    

并在实施文件" TestFile.m":

-(NSDictionary *)justTest:(NSString *) mystring {

NSLog(@"Here is my string: %@", mystring);
return nil;

}

现在我想打电话给#34; justTest"来自另一个文件。我在做什么:

 #import "TestFile.h"


- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.

  NSDictionary *testFile = [[TestFile alloc] init];

  [testFile justTest:@"Hello World!"]

}     

在我试图传递参数之前,这很好用。

如果我只是执行

[testFile justTest];    

它有效,但是当我尝试传递参数

[testFile justTest:@"Hello World!"];    

不起作用,调试消息为:

no visible @interface for 'TestFile' declares the selector 'justTest':    

我有什么问题?

2 个答案:

答案 0 :(得分:1)

您需要通过在@end:

之前将方法名称添加到TestFile.h文件来公开此方法

-(NSDictionary *)justTest:(NSString *) mystring;

只是为了让你知道当你添加@property编译时合成它(创建)两个方法getter,与你的属性完全相同的名字和setter编译器添加'set'前缀,例如,你声明:

@property (nonatomic) NSDictionary *justTest;

编译器将创建两个方法:

-(NSDictionary *)justTest {...}
-(void)setJustTest {...}

您需要知道在代码中覆盖getter方法。

答案 1 :(得分:1)

在从外部类调用之前,在TestFile.h文件中声明您的方法。

-(NSDictionary *)justTest:(NSString *) mystring;