从另一个函数

时间:2015-10-24 14:59:56

标签: ios objective-c

这听起来很荒谬但不起作用。有人能看到我错过的东西吗?

我有一个ViewController,我在其中定义了一个名为ProcessData的函数。我试图从viewDidLoad函数调用ProcessData,但它没有看到它。我在.h文件中声明它,然后在.m文件中定义它。这是代码。

ViewController.h     @interface ViewController:UIViewController

- (void) ProcessData: (NSString *)response;

@end

ViewController.m

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    [ProcessData nil];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void) ProcessData: (NSString *)response
{

}

@end

3 个答案:

答案 0 :(得分:1)

要调用类/静态函数,必须编写

[ViewController ProcessData: nil];

您必须在课程ProcessData上调用方法ViewController

但是你所拥有的不是类/静态方法,因为它是- (void)而不是+ (void)。你的错误基本上是使用错误的语法来调用任何方法。您可以在

等对象上调用方法
[self ProcessData: nil];

而不是

[ProcessData: nil];

最终注释:方法名称应以较低的字符开头!该方法应称为processData

答案 1 :(得分:1)

在这种情况下,你还没有声明一个类方法,你已经声明了一个实例方法,所以你可以通过这样做来调用它:

[self ProcessResponse: nil];

如果要声明一个类函数,如果声明而不是+,则需要在开头使用-

+ (void) ProcessResponse: (NSString *)response;

你这样称呼:

[ViewController ProcessResponse: nil];

作为旁注,你应该按照这样的格式实际遵循常规约定:

+ (void)processResponse:(NSString *)response;

注意pascal case(方法名称开头没有大写字母),返回类型和名称之间没有空格,方法名称和参数类型之间没有空格。

答案 2 :(得分:1)

这不是一种类方法。它是一种实例方法。你必须这样称呼它:

<body>
<div class="container">
	<div class="divClass">Div1</div>
	<div class="divClass">Div2</div>
	<div class="divClass">Div3</div>
</div>
</body>

类方法定义为&#34; plus&#34;符号(+),不是连字符( - )。

方法名称应以小写字母开头。

相关问题