简单的问题:我学习了 C++ 和 struct 的语法。所以我想在我的 iOS 应用程序中使用结构来存储数据,但 ARC 不允许通常使用结构,我的问题有什么解决方案吗?
struct fruit {
int a;
};
_
{
struct fruit apple;
apple.a = 1;
return 0;
}
例如,是否有可能用 NSMutableArray 解决这个问题?顺便说一句,我必须在哪里定义它?.m 文件还是 .h 文件?
问候 CTS
简单的问题:我学习了 C++ 和 struct 的语法。所以我想在我的 iOS 应用程序中使用结构来存储数据,但 ARC 不允许通常使用结构,我的问题有什么解决方案吗?
struct fruit {
int a;
};
_
{
struct fruit apple;
apple.a = 1;
return 0;
}
例如,是否有可能用 NSMutableArray 解决这个问题?顺便说一句,我必须在哪里定义它?.m 文件还是 .h 文件?
问候 CTS
当然,即使在 ARC 中,也允许在 Objective-C 中使用结构。您指定的结构应该绝对没有问题:
struct fruit {
int a;
};
ARC 出现的唯一问题是包含 Objective-C 对象的结构,因为 ARC 不知道它必须如何管理这些对象。但是,您可以使用__unsafe_unretained
, 让编译器知道“你知道,你在做什么”:
struct foo {
__unsafe_unretained NSString *bar;
};
bar
在这种情况下只是一个指针,而不是强引用,由 ARC 管理。Apple 建议在这些情况下尽可能使用简单的类。