c++ - Objective-C适当使用autorelease?

标签 c++ objective-c autorelease

我正在学习 Objective-C,并且正在尝试编写一个 Vector3D 类。

在 C++ 或 Java 中,我想要实现的函数看起来像这样:

Vector3D
{
  Vector3D crossProduct(Vector3D in)
  {
    Vector3D result;
    result = ...  // maths involving this classes variables and the input Vectors variables.
    return result; 
  }
}

现在在 objective-c 中我不能返回一个对象,只能返回一个对象指针。这是使用自动释放的合适位置吗(返回之前?)。这将使我能够链接 Vector3D 类上的方法(因为许多方法返回对象本身),但是与手动分配和释放对象相比,这会不会特别低效?在 objective-c 中是否还有其他常用模式用于返回对象?

我想对类进行的操作示例:

Vector3D * vector3D1 = [[Vector3D alloc] init];
Vector3D * vector3D2 = [[Vector3D alloc] init];
Vector3D * vector3D3 = [vector3D1 cross [ [vector3D2 normalize ] multiply 1.43f]];

谢谢。

最佳答案

是的,这正是 autorelease 的恰当用法,事实上大多数使用您的代码的人都完全期望 crossnormalize、和 multiply 返回一个自动释放的对象。

关于c++ - Objective-C适当使用autorelease?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795213/

相关文章:

objective-c - ivars 和属性应该在头文件还是实现文件中声明?

iphone - 保存来自用户的请求

objective-c - iOS:释放正在使用的对象 (ARC)

c++ - 读取整个文件并通过套接字发送

c++ - 为什么我要在 C++ 中实现我自己的双向链表?

ios - UITableView 部分标题的自动布局问题

objective-c - 访问有效的、未释放的对象时发生 EXC_BAD_ACCESS 错误

objective-c - Objective-C - 内存管理和自动释放 ???

能够模拟非虚拟方法和 C 函数的 C++ 模拟框架

c++ - 什么时候删除[]指针c++?