在 C 语言中,类似以下的内容将是一场灾难(即内存泄漏),因为您正在返回一个指向您永远无法释放的内存的指针:
NSString* foo()
{
return [NSString stringWithFormat:@"%i+%i=%i", 2, 2, 2+2];
}
这实际上在 Objective-C 中完全没问题,因为返回的指针指向的内存将被自动释放?就算没问题,有什么理由不被人接受吗?有什么理由喜欢 C 风格,如下所示?
void foo(NSString ** modifyMe)
{
*modifyMe = [NSString stringWithFormat:@"%i+%i=%i", 2, 2, 2+2];
}