0

我正在加快使用 ARC 进行 iOS 应用程序开发的速度。有时,我只需要一个普通的旧 c-struct 的普通 ole c-array 即可完成工作。在 ARC 之前,我只想添加free()到我的dealloc方法中。有了 ARC,就不再需要dealloc. 我可以添加一个 ARC 指令来告诉编译器处理释放我的 c 数组吗?

Per Tom 的回答是 dealloc 方法

// EIVertex
struct EIVertex {
    GLKVector3 p;
    GLKVector3 n;
    GLKVector3 barycentric;
    GLKVector2 st;
};

typedef struct EIVertex EIVertex;

// ivar declaration
EIVertex *_vertices;

// malloc an array of EIVertex
_vertices = (EIVertex *)malloc([_triangles count] * sizeof(EIVertex));

// Note lack of [super dealloc]
- (void)dealloc{

    // ARC will not handle mem. management for plain ole c arrays.
    free(_vertices);
}
4

1 回答 1

3

你仍然可以重载dealloc。唯一的事情是你不能明确地调用它。所以像以前一样写dealloc,但不要调用[super dealloc]它。

于 2012-10-30T16:52:50.670 回答