问题标签 [dealloc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 在 -(void)dealloc 中同步 NSUserDefaults 是不是很糟糕?
我在对象的 init 方法中从 NSUserDefaults 加载。我可以在对象的 dealloc 方法中保存到 NSUserDefaults 吗?
完全像:
好,坏,好吗?如果不好,哪里会更好。
编辑:
感谢您的详细回复。所有这些都是有道理的。我发现为什么这是保存用户默认值的不好地方的另一个原因是,只有在对象很好地解除分配时才会调用 dealloc。如果我的应用程序被杀死,此代码将永远不会运行。同样,如果应用程序被推送到后台(iOS 4),它不会运行。我还删除了显式[userDefaults synchronize]
调用。这让我有点紧张,但我把我的信任放在了苹果上。:)
c++ - 在 C++ 中处理字符(没有 std::string)
我有这个代码:
第二个值将获得值的地址好吗?如果我删除“值”,那么 secondValue 将不可用,对吗?
所以我应该这样做:
所以如果我删除“值”没问题。
最后解除我应该做的 secondValue :
我对吗?
iphone - 当应用程序进入后台时如何正确释放对象?
只有一个问题“当应用程序进入后台时如何正确释放对象?”。我正在开发一些应用程序,一切正常。当我将应用程序置于后台然后再次启动时,它会崩溃。不是立即(应用程序在我关闭它的地方加注星号),而是当我选择一些单元格或只是滚动表格视图时。所以我很确定应用程序调用已经发布的数据。
这是dealloc的示例
有什么建议吗?
iphone - CFString isNaturallyRTL - 发送到已释放实例的消息
我已经用 0 个结果搜索了“CFString isNaturallyRTL”。
这些是我的课:
现在,我有一个在按钮触摸时打开的视图,其中包含两个文本框和一个按钮。像这样。
一切正常,编译运行。
我第一次单击 drawRouteTextboxes 时,它会打开我的视图并设置默认文本(“Roma”和“lecce”)。第二次,我打开视图,编辑文本字段并调用 drawRoute。没关系。我第三次调用 drawRouteTextboxes 它返回我这个运行时错误:
我不知道问题出在哪里......有人知道解决方案吗?这是我第一次看到这个错误!
谢谢,阿尔贝托。
objective-c - Objective-C 释放在类别中声明的属性?
我在现有类上有一个类别,它向该类添加了一个属性和一些方法。
在实现文件中,我想在对象被释放时释放这个属性。但是,如果我dealloc
在这个类中声明,它将根据我的理解覆盖原始类中的 dealloc。那么aProperty
当对象被释放时释放它的正确方法是什么?
uiview - UIViewController & UIview dealloc 没有被调用
我有一个基于导航的视图控制器,在视图控制器中我隐藏了顶部导航栏并使用自定义 UIView 作为导航栏。
UIView 栏有一个后退按钮,当后退按钮被预置时,我使用委托方法(我已经声明了一个协议)与视图控制器进行通信。
我在我的 CustomNavigation Bar id 委托中使用委托;
并在主视图控制器中,当我分配导航栏时,我设置了委托
我在 ViewControllers dealloc 中释放了这个 Bar。
现在,当我按下后退按钮时,我使用委托方法在主 ViewController 中调用 popViewController。
现在 ViewController 被弹出并且控制转到前一个 viewController 但在 ViewController 和 UIView 中都没有触发 dealloc
我究竟做错了什么?
iphone - 正确[超级释放]
dealloc 方法中语句的顺序是否重要?是否[super dealloc]
需要在方法的顶部?有关系吗?
也在例如viewDidLoad
。应该[super viewDidLoad]
在方法的顶部?
iphone - dealloc 中的自定义 UIButton 内存管理
我希望澄清这里正在进行的过程。
我创建了一个 UIButton 的子类,它的 init 方法如下所示:
在我的视图控制器中,我正在创建这些按钮之一并将其添加为子视图:
在视图控制器的dealloc
方法中,我记录了按钮的保留计数:
我理解它的方式, myButton 实际上并没有保留,即使我使用 调用它alloc
,因为在我的子类中我创建了一个自动释放按钮(使用buttonWithType:
)。
在dealloc
中,这是否意味着,当调用 dealloc 时,superview 释放按钮并且其保留计数下降到 1?该按钮尚未自动释放?
或者我是否需要在调用 [super dealloc] 后将保留计数减为零?
干杯。
iphone - iOS SDK - dealloc 实现 - 先释放子视图?
我正在完成一个 iPad 应用程序,对我来说,这意味着填写dealloc
我的课程中的所有方法。
我的 nib 中有很多视图,其中大部分都包含子视图(即UIView
s、UILabel
s 等)。我应该在释放父视图之前释放子视图吗?如果父视图被释放,它的子视图是否也会被释放?
样本:
两者childView
和parentView
都是我的视图控制器的属性。两者都被保留了。
objective-c - 在 Objective-C 对象中使用 malloc/free
我有一个类型AudioManager
为成员的类AudioBufferList *
。(这是在框架中声明的结构CoreAudio
)。由于AudioBufferList
is not a NSObject
,我无法保留它,所以我必须分配/释放它(如果我错了,请纠正我)。
我的问题是,释放它的“正确”地方在哪里?目前我正在dealloc
使用AudioManager
. release
如果我理解正确,一旦将消息发送到 --- 的实例,就会自动调用此方法,这AudioManager
是真的吗?关于在 Objective-C 对象的非对象成员上使用 alloc/free 是否有任何其他推荐的做法?
编辑:
从苹果文档:
子类必须实现它们自己的 dealloc 版本,以允许释放对象消耗的任何额外内存——例如为数据或对象实例变量动态分配的存储被释放对象所拥有。在执行特定于类的释放后,子类方法应该通过向 super 发送消息来合并超类版本的 dealloc:
这使事情变得更加清晰 - 但更多的见解值得赞赏。