我想调用一个返回两个值的方法
基本上可以说我的方法如下(想要返回 2 个值)
NSString* myfunc
{
NSString *myString = @"MYDATA";
NSString *myString2 = @"MYDATA2";
return myString;
return myString2;
}
所以当我调用它时,我会使用??
NSString* Value1 = [self myfunc:mystring];
NSString* Value2 = [self myfunc:mystring2];
我想我做错了什么,有人可以帮助我吗?
谢谢
您只能返回 1 个值。该值可以是结构体、对象或简单类型。如果返回一个结构或对象,它可以包含多个值。
返回多个值的另一种方法是不带参数。 C 中通过引用或指针传递。
下面的代码片段显示了如何返回包含两个 NSString 的结构:
typedef struct {
NSString* str1;
NSString* str2;
} TwoStrings;
TwoStrings myfunc(void) {
TwoStrings result;
result.str1 = @"data";
result.str2 = @"more";
return result;
}
并这样称呼它:
TwoStrings twoStrs = myfunc();
NSLog(@"str1 = %@, str2 = %@", twoStrs.str1, twoStrs.str2);
返回指针时,即使它们包装在结构体中,您也需要小心内存管理。在 Objective-C 中,约定是函数返回自动释放的对象(除非方法名称以 create/new/alloc/copy 开头)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)