1

简单的问题:我学习了 C++ 和 struct 的语法。所以我想在我的 iOS 应用程序中使用结构来存储数据,但 ARC 不允许通常使用结构,我的问题有什么解决方案吗?

struct fruit {
    int a;
};

_

{
struct fruit apple;
apple.a = 1;
return 0;
}

例如,是否有可能用 NSMutableArray 解决这个问题?顺便说一句,我必须在哪里定义它?.m 文件还是 .h 文件?

问候 CTS

4

1 回答 1

4

当然,即使在 ARC 中,也允许在 Objective-C 中使用结构。您指定的结构应该绝对没有问题:

struct fruit {
    int a;
};

ARC 出现的唯一问题是包含 Objective-C 对象的结构,因为 ARC 不知道它必须如何管理这些对象。但是,您可以使用__unsafe_unretained, 让编译器知道“你知道,你在做什么”:

struct foo {
    __unsafe_unretained NSString *bar;
};

bar在这种情况下只是一个指针,而不是强引用,由 ARC 管理。Apple 建议在这些情况下尽可能使用简单的类。

于 2012-12-20T15:08:58.720 回答