【发布时间】:2012-06-01 14:11:12
【问题描述】:
我尝试制作一个包含类的结构,例如:
struct my_struct
{
NSString *string;
// more fields
};
令我惊讶的是,Objective-C++ 在启用 ARC 的情况下允许这样做。
它将如何管理字符串?
它可以很容易地保留在每个作业中,但问题是释放。
它可以添加一个带有释放的析构函数,但这会使结构变得不平凡。
它也可以使它不保留或释放,但这样做应该有 unsafe_unretained。
根据我的观察,使用它时没有任何崩溃,但我想知道这里到底发生了什么。
【问题讨论】:
-
只是猜测,但根据我的经验,您需要包含
unsafe_unretained,它可能只是默认为unsafe_unretained。 -
@pcperini:然后它应该在自动释放池弹出后崩溃,但它没有。你的经验是 Objective-C 还是 Objective-C++?在 C 中它不能添加析构函数。
-
Objective-C :)
标签: objective-c struct automatic-ref-counting objective-c++