objective-c - 如何返回两个值?

标签 objective-c methods

我想返回一个笛卡尔坐标 (x, y),作为两个 int。我看到的唯一方法是创建一个类并返回它的一个实例。

如何从 Objective C 中的方法返回两个值?

最佳答案

您只能从函数返回一个值(就像 C 一样),但该值可以是任何东西,包括结构。由于您可以按值返回结构,因此您可以定义这样的函数(借用您的示例):

-(NSPoint)scalePoint:(NSPoint)pt by:(float)scale
{
    return NSMakePoint(pt.x*scale, pt.y*scale);
}

这只适用于小型/简单的结构。

如果您想返回多个新的对象,您的函数应该采用指向对象指针的指针,因此:

-(void)mungeFirst:(NSString**)stringOne andSecond:(NSString**)stringTwo
{
    *stringOne = [NSString stringWithString:@"foo"];
    *stringTwo = [NSString stringWithString:@"baz"];
}

关于objective-c - 如何返回两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002745/

相关文章:

ios - 如何从核心数据表 ios 中检索数据?

Python 类方法总是执行两次

java - 我遇到了 do while 循环问题。谁能告诉我为什么这不起作用?

iphone - 在 NSNotificationCenter 上放置断点

ios - 读取阿拉伯文本文件并存储到sqlite数据库

objective-c - 在ios中连接两个视频

java - 创建员工类和员工类演示?

java - 如何从静态方法调用非静态方法?

java - 从嵌套的 for 循环返回一个变量

objective-c - 从 GCC 中的单独文件内联函数