Вы можете вернуть только одно значение из функции (точно так же, как 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"];
}