dealloc相关内容

位置服务指示灯保持“开启"状态

我创建了一个在 iPhone 上使用定位服务的小应用程序.一切都很好,除了有时,即使我明确杀死应用程序,信息栏中的小箭头也会保持活动状态.我对定位服务使用后台模式,因此实现了 appDelegate 方法 applicationWillResignActive、applicationDidEnterBackground、applicationWillEnterForeground 和 applic ..
发布时间:2022-01-19 20:47:08 移动开发

在 init 和 dealloc 方法中有效使用访问器?

我现在从多个来源(stackoverflow.com、cocoa-dev、文档、博客等)听说在 init 和 dealloc 方法中使用访问器和设置(foo、setFoo:) 是“错误的".我了解,如果您这样做,则极有可能混淆正在观察该属性的其他对象.(这里给出了一个简单的例子) 但是,我不得不说我不同意这种做法,原因如下: 新的 Objective-C 运行时(iPhone 上的运行 ..
发布时间:2022-01-18 23:24:19 移动开发

在 dealloc 中将委托设置为 nil

在 Objective-C 中,我理解如果一个对象将自己设置为另一个对象的委托,它应该在其 dealloc 中将该对象的委托设置为 nil 以避免在它消失后收到发送的消息. 但是,当使用 Accessorizer(一个 Xcode 实用程序)时,它生成的存根代码也会在具有委托实例的类的 dealloc 中放置一个 delegate = nil多变的.这样做的目的是什么? 解决方案 这 ..
发布时间:2022-01-18 12:16:07 移动开发

SKScene 无法释放内存导致有限的内存增长

我已经为此苦苦挣扎了好几天,由于某种原因,我的 SKScene 没有正确释放,这导致内存增长有限,因为每次我退出并进入场景时,内存都会跳跃.这意味着在游戏进行了 10 轮之后,应用程序崩溃了.据我所知,经过多次检查后,我没有任何保留周期或对场景本身的强引用,虽然我知道纹理被缓存并保存在内存中,但一旦预加载,内存不应该每次都增加. 这就是我在视图控制器中设置 skview 和第一个场景的方式: ..
发布时间:2022-01-11 12:08:52 其他开发

UIViewController -dealloc 方法未调用

我正在使用自动引用计数.我有一个自定义的 UIViewController 子类,每当我调用 -presentViewController:animated:completion: 或从超级视图中删除它的视图时,我都希望 NSLog像“我被释放"这样的东西,所以我知道视图控制器已成功删除.我已经在我的视图控制器中实现了 -dealloc 方法.但是,我开始了一个测试项目,其中我只有两个 UIVie ..

在 dealloc 中使用 self.property = nil 有什么问题吗?

我知道声明的属性会生成访问器方法,这在某种程度上只是语法糖. 我发现很多人在他们的 dealloc 方法中使用了 self.property = nil. 1) 在 Apple 的内存管理文档中,第 23 页它说: 唯一不应该使用访问器方法来设置实例变量的地方是在 init 方法和 dealloc 中. 为什么不应该? 2) 在苹果的 Objective-C 2.0, ..
发布时间:2022-01-02 18:41:53 移动开发

init 和 dealloc 方法中访问器的有效使用?

我现在从多个来源(stackoverflow.com、cocoa-dev、文档、博客等)听说在 init 和 dealloc 方法中使用访问器和设置(foo、setFoo:)是“错误的".我知道,如果您这样做,很可能会混淆正在观察该属性的其他对象.(这里给出了一个简单的例子) 但是,我不得不说我不同意这种做法,原因如下: 新的 Objective-C 运行时(iPhone 上的运行时和 ..
发布时间:2022-01-02 18:18:54 移动开发

退出应用程序时dealloc方法是否正常执行?

我使用如下代码(例如在我的 appController.m 中)在我的应用程序终止时进行一些清理...... - (void) dealloc {[我的对象发布];//myObject 的 dealloc 也不会被调用!!!【阵列短信发布】;[超级dealloc];} 当应用退出时这个方法永远不会被调用!为什么 ?有没有更好的地方来做我的清理工作?未被调用的事实解决了内存泄漏问题?还是操作系统 ..
发布时间:2021-12-31 08:02:07 移动开发

iPhone - dealloc - Release vs. nil

想知道是否有经验的人可以解释一下.我见过...的例子 [查看发布];视图 = 无; ....在(void)dealloc 中. 有什么区别,一个比另一个更好吗?最好的方法是什么? 在进行 retainCount 测试时,我个人看到 nil 将计数从 3 降为 0,但 release 仅将其从 3 降为 2. 解决方案 你所看到的可能是这些: 1) [foo releas ..

自定义 dealloc 和 ARC (Objective-C)

在我的小 iPad 应用程序中,我有一个使用观察者的“切换语言"功能.每个视图控制器在其 viewDidLoad: 期间向我的观察者注册自己. - (void)viewDidLoad{[超级viewDidLoad];[观察者注册对象:自我];} 当用户点击“更改语言"按钮时,新语言会存储在我的模型中,观察者会收到通知并在其注册的对象上调用 updateUi: 选择器. 这很有效,除非我在 ..
发布时间:2021-12-05 20:25:24 移动开发

初始化属性,点符号

在我的 init 方法中使用点表示法将保留属性初始化为 nil 是不是一个坏主意? 对于任何像这样的普通属性: @property (nonatomic, retain) id foo; 说在我的 init 方法中我设置了 self.foo = nil.合成方法首先发布或自动发布 foo(不完全确定底层实现).foo 是否保证在第一次 setter 或 getter 调用之前为零?或者它 ..

永远不会调用视图控制器的 Dealloc 方法

我知道有很多这样的问题.我都读了.我的问题很简单. 我从 xcode 文件>新项目>单视图应用程序创建了一个单视图应用程序.然后我在情节提要中添加了第二个 uiviewcontroller 和一个名为 secondViewController 的新视图控制器类.我将一个按钮拖到主视图控制器,然后通过 ctrl+drag 拖到情节提要上的 secondViewController.我在 sec ..
发布时间:2021-09-17 20:27:31 移动开发

EXC_Breakpoint 滚动视图崩溃

自从我为 iOS 7 更新我的应用程序以来,这是一个新问题.每次我在我的设备或模拟器上启动应用程序时,我都会收到此错误代码 RecipeDetailViewController scrollViewDidScroll:]: 消息发送到释放实例 0x15746c40 并且它崩溃了. 我启用了 NSZombie,这就是它给我的代码.在它给出 exc_bad_access 代码之前. ..
发布时间:2021-09-13 18:48:05 其他开发

Dealloc 未调用更改选项卡

假设有一个标签栏控制器,有两个标签,A 和 B,其中 A 是导航控制器. 当用户在A时,他可以推A1,然后是A2,这两个都是视图控制器.A2 上的后退按钮,执行: [self.navigationController popViewControllerAnimated:YES]; 正确触发 A2 上的 dealloc 方法. 如果用户在A2然后切换到tab B,我需要在A2上调用d ..

谁在 Objective C 中调用 dealloc 方法?

当在 Objective C 中创建自定义类时,dealloc 方法何时以及如何调用?这是我必须在课堂上以某种方式实现的东西吗? 解决方案 您从不直接发送 dealloc 消息.相反,对象的 dealloc 方法是通过释放 NSObject 协议方法间接调用的(如果释放消息导致接收者的保留计数变为 0).有关使用这些方法的更多详细信息,请参阅内存管理编程指南. 子类必须实现自己的 d ..
发布时间:2021-06-11 20:06:37 移动开发

自杀:Objective-C 对象调用自己的 -dealloc 方法

Objective-C 中的对象自杀是好习惯吗?也就是说,对于声明 [self dealloc] 的对象,-dealloc 允许像往常一样有序结束?主要风险是什么? 碰巧我有一个特定的例子,一个自定义计时器对象,它扩展了 NSObject 并包含一个 NSTimer 实例和一个 NSUInteger,它被设置为限制计时器触发的次数.当时间到时,对象告诉计时器 -invalidate 然后通过 ..
发布时间:2021-06-09 20:22:57 移动开发