我尝试创建一个包含类的结构体,代码如下:
struct my_struct
{
NSString *string;
// more fields
};
令人惊讶的是,在启用ARC的情况下,Objective-C++ 允许这样做。
它可以在每个赋值中轻松保留字符串,但释放是个问题。
它可以添加一个带有释放功能的析构函数,但这将使结构体变得非平凡。
它也可以使这个不保留或释放,但要这样做就需要使用unsafe_unretained。
根据我的观察,使用这种方法时不会出现任何崩溃,但我想知道这里实际发生了什么。
unsafe_unretained
,它可能会默认为unsafe_unretained
。 - Patrick Perini