objective-c - ARC下id数组成员实例

标签 objective-c automatic-ref-counting

我想写这样的东西:

@interface Foo{

    __strong id idArray[]; 

}
@end

但是编译器会提示:

Field has incomplete type '__strong id []'.

如何在ARC下创建一个id数组成员实例?我该如何初始化该数组? 使用 malloc?新的[]?

我不想使用 NSArray,因为我要将大型库转换为 ARC,这会导致大量工作。

最佳答案

如果要动态分配数组,使用id为__strong的指针类型。

@interface Foo
{
    id __strong *idArray;
}
@end

使用 calloc 分配数组。 id __strong 必须初始化为零。

idArray = (id __strong *)calloc(sizeof(id), entries);

完成后,必须将数组的条目设置为 nil,然后释放。

for (int i = 0; i < entries; ++i)
    idArray[i] = nil;
free(idArray);

关于objective-c - ARC下id数组成员实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308090/

相关文章:

ios - 如何获取使用自动布局的 UIView 的 x、y、宽度、高度

ios - 你可以在一个 Xcode 项目中拥有多个 Root View Controller 吗?

objective-c - sqlite中的外键定义

swift - 捕获列表 : reference to class instance or initialized variable?

ios - 调用了 deinit 但对象仍在内存中

ios - 如何在 ARC 下正确管理此 UIBarButtonItem 的内存?

ios - 在 iOS 13 的 iPhone 上将纵向 View Controller 推到横向 View Controller 上

ios - UISearchDisplayController 表格框架

iphone - NSMakeCollectable 和 ARC 不起作用

objective-c - 由于使用动态内容引发 NSException 而导致 ARC 内存泄漏