Obj-C函数参数

时间:2009-12-31 21:28:38

标签: objective-c function parameters

如何将参数发送到我的函数?

- (void)alertURL {
    NSLog(@"%@",url);
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    alertURL(url);
    return YES;
}

如果还有其他错误,请告诉我:)

3 个答案:

答案 0 :(得分:4)

定义你所谓的函数的正确方法是Obj-C talk中的一个方法,就是在括号和参数变量名中添加一个冒号和类型。

然后要调用该方法,请使用方括号。

- (void)alertURL:(NSURL *)url {
    NSLog(@"%@",url);
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    // Old C function: alertURL(url);

    [self alertURL:url];
    return YES;
}

仍然支持函数,它们只是常规的C函数,这意味着它们与任何对象都没有关联。您要做的是使用方括号向对象发送消息。这是一个Obj-C的东西,你会习惯的。

答案 1 :(得分:4)

首先,这不是一个函数,即实例方法。实例方法可以带参数:

- (void)alertURL:(NSURL *)url {
    NSLog(@"%@",url);
}

或者,如果您想添加多个:

- (void)alertURL:(NSURL *)url ensureSecure: (BOOL) aFlag
{
    NSLog(@"%@",url);
    if (aFlag) { ... secure stuff ... }
}

其次,您不使用函数调用语法调用方法,您可以通过方法调用语法调用它:

[self alertURL: anURL];
[self alertURL: anURL ensureSecure: YES];

最后,问题表明你还没有理解Objective-C。不用担心 - 我们曾经都在那里。 Apple提供了出色的introduction to Objective-C

答案 2 :(得分:0)

就像你在C中所做的那样。

void alertURL(NSURL* url) {
  NSLog(@"%@",url);
}