use*_*507 1 iphone objective-c
我想调用一个返回两个值的方法
基本上可以说我的方法如下(想要返回2个值)
NSString* myfunc
{
NSString *myString = @"MYDATA";
NSString *myString2 = @"MYDATA2";
return myString;
return myString2;
}
Run Code Online (Sandbox Code Playgroud)
所以,当我打电话给它时,我会用?
NSString* Value1 = [self myfunc:mystring];
NSString* Value2 = [self myfunc:mystring2];
Run Code Online (Sandbox Code Playgroud)
我想我做错了什么,有人可以帮帮我吗?谢谢
您只能返回1个值.该值可以是结构或对象或简单类型.如果返回结构或对象,则它可以包含多个值.
返回多个值的另一种方法是使用out参数.在C中通过引用或指针传递
这是一个代码片段,显示如何返回包含两个NSStrings的结构:
typedef struct {
NSString* str1;
NSString* str2;
} TwoStrings;
TwoStrings myfunc(void) {
TwoStrings result;
result.str1 = @"data";
result.str2 = @"more";
return result;
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
TwoStrings twoStrs = myfunc();
NSLog(@"str1 = %@, str2 = %@", twoStrs.str1, twoStrs.str2);
Run Code Online (Sandbox Code Playgroud)
返回指针时,即使它们包含在结构中,也需要小心内存管理.在Objective-C中,约定是函数返回自动释放的对象(除非方法名称以create/new/alloc/copy开头).
你有几个选择:
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |