我是目标c的新手,我只是想知道如何调用具有return语句值的方法?
示例
-(NSString*) exampleString
{
NSString *example= @"hello this a test";
return example;
}
现在我如何调用上面的方法来获取返回的值?
由于
答案 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
表示类中本身的一个实例,它只能在实例方法中使用,而不能在类方法中使用。