如何调用目标c中的方法?

时间:2012-03-03 01:55:23

标签: objective-c ios xcode

我是目标c的新手,我只是想知道如何调用具有return语句值的方法?

示例

-(NSString*) exampleString
{

NSString *example= @"hello this a test";

return example;


}

现在我如何调用上面的方法来获取返回的值?

由于

6 个答案:

答案 0 :(得分:4)

通过将消息传递给实现该方法的类的实例来调用方法。然后评估为rvalue,就像C函数调用一样。

所以,例如。

NSString *fetchedExample = [self exampleString];
编辑:大卫在下面的回答也值得重复。在Objective-C中,对象是不透明的,并且(有一些例外)只在堆上生存,所以你传递指向它们的指针而不是事物本身。

答案 1 :(得分:3)

NSString * string = [objectContainingTheMethod exampleString];

查看Objective C编程指南,特别是方法的声明和用法。

答案 2 :(得分:2)

欢迎使用Objective-C,这很简单。当您调用Objective-C方法时,使用[object message]语法

NSString *exampleString = [self exampleString]; // self refers to the object or class

如果要传递参数,可能看起来像

[self getText:@"hello"];

- (NSString *)getText:(NSString *)text 
{
    return text;
}

答案 3 :(得分:1)

NSString *returnedValue = [self exampleString];

答案 4 :(得分:1)

NSString *returnedText = [self methodName:parameter];

所以在你的情况下,

NSString *returnedText = [self exampleString];

请注意:请确保将方法的返回类型更改为“NSString *”而不是“NSString”,因为NSString对象无法静态声明。

希望这有帮助

答案 5 :(得分:1)

先生,您的代码有误,它应该是这样的:

-(NSString *) exampleString{
    NSString *example= @"hello this a test";

    return example;
}

错误在于你不能使用返回类型不是指针的方法返回指针(你最初有-(NSString )exampleString ...)。

现在回答你的问题,这是一个实例方法,因为在声明的开头它使用短划线( - )。还有其他类型的方法,如类方法,通过在声明(+)中使用加号可以轻松区分。

由于这是一个实例方法,您需要有一个实例才能调用此方法,因此首先必须声明该类的实例然后调用它,确保初始化它并分配一些空间(如果需要的话):

JamesHowardClass *myInstance=[[JamesHowardClass alloc] init];
NSLog(@"Rocking out my first method %@", [myInstance exampleString]);

//Since you allocated some space, you should take care of the memory management
[myInstance release];

现在看另一个可能的用法,如果你在类声明中调用这个方法,你应该这样调用它:

NSLog(@"Rocking out my first method %@", [self exampleString]);

单词self表示类中本身的一个实例,它只能在实例方法中使用,而不能在类方法中使用。