gpt4 book ai didi

ios - UIActionSheet 解雇后释放

转载 作者:行者123 更新时间:2023-11-28 21:31:16 27 4
gpt4 key购买 nike

我在我的项目中使用 UIActionSheet:

self.actionSheet = [[[UIActionSheet alloc] initWithTitle:nil] autorelease];

这是对象:

@property (nonatomic, retain) UIActionSheet *actionSheet;

UIActionSheet 被关闭后,我想释放它并使用以下代码将其设为 nil:

[self.actionSheet release];
self.actionSheet = nil;

但是当我这样做时,应用程序崩溃了,知道为什么会这样吗?

最佳答案

手动调用 release 是问题所在。当使用属性的合成 setter 时,它会正确释放先前的对象。

您应该将代码更改为:

self.actionSheet = nil;

或者,如果您更喜欢手动释放,请将底层实例变量设置为 nil,如下所示:

[self.actionSheet release];
_actionSheet = nil;

正如评论中所建议的,您应该将您的代码迁移到 ARC。如果您不能迁移所有代码,您仍然可以迁移大部分代码,并且只将“有问题”的代码保留在 MRC 中。

关于ios - UIActionSheet 解雇后释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35970135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com