我正在学习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
的适当用法,实际上,大多数使用您代码的人都完全希望cross
,normalize
和multiply
返回一个自动释放的对象。