问题标签 [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.

0 投票
2 回答
52 浏览

ios - iPhone内存管理的模棱两可的场景

我很难理解这种情况。

  • 我创建一个对象
  • 我将其保留属性设置为
  • 我忘记释放它的财产
  • 我释放对象

由于我没有在dealloc方法中释放该属性,那么该场景会导致内存泄漏还是会自动释放该属性?

0 投票
1 回答
324 浏览

iphone - 滚动带有图像的表格视图时发出信号“0”错误

在 tableview 上滚动图像时出现问题。

我收到信号“0”错误。

我认为这是由于一些内存问题,但我无法找出确切的错误。代码如下,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell";

提前致谢。

0 投票
1 回答
824 浏览

iphone - 在 Interface Builder 中创建的对象过早地被解除分配

该项目

我正在开发一个相对简单的 iPhone OS 项目,该项目基于导航控制器,具有根表视图和详细表视图。点击主列表中的项目以在推送的表格视图中查看其详细信息。

设置

我将两个视图的数据源分解为它们自己的对象,以免混淆视图控制器的目的。完成此操作后,表视图不再具有数据源,因为这些方法现在位于单独的文件中,因此我使用 Object 项在适当的 XIB 文件中创建了每个数据源类的实例(将其拖入,然后设置其类) . 然后,为了将 tableview 实际连接到它们的数据源,我将每个 tableview 的 dataSource 出口设置为 Interface Builder 中的黄色数据源对象。表视图委托仍设置为其视图控制器。

问题

根表视图工作得很好,但是当您点击一行以推送到详细视图时,数据源对象会按预期实例化,然后立即解除分配,导致崩溃(numberOfSectionsInTableView:被释放的对象调用)。我无法弄清楚为什么当我需要它时数据源会自动解除分配,因为我需要它获取详细信息视图,正如我在 Interface Builder 中的数据源对象创建和 tableview 连接所表明的那样。更令人困惑的是,这种方法非常适用于根表视图!

问题

有什么明显的我遗漏会导致这种情况发生吗?或者,这甚至是为表视图控制器实例化数据源的正确方法吗?从视图控制器中执行它似乎是糟糕的面向对象编程,它应该只关心视图。我可以把所有东西都塞进两个表视图控制器类中,它可能会工作,但它不会像我想要的那样模块化。

谢谢!

0 投票
4 回答
311 浏览

iphone - 苹果手机。不应该点击主页按钮导致 UIApplicationDelegate 的 dealloc 被调用

我已将 NSLogs 放入我的所有类中,包括我的 UIApplicationDelegate 子类。我很好奇——也有点紧张——为什么当我按下主页按钮时我没有看到它们回响任何东西。我在 XCode 模拟器中运行。

由于 iPhone/iPad 一次运行一个应用程序,所以点击主页按钮不会丢弃正在运行的应用程序的所有痕迹吗?

谢谢,
道格

0 投票
1 回答
1145 浏览

iphone - 需要释放导航控制器中的所有视图

我正在尝试设置应用内购买,一旦购买完成,我需要将应用重置为其初始启动状态。我想知道是否有办法释放每个导航控制器内的所有视图控制器并重新加载应用程序启动时显示的初始视图。

提前致谢!

0 投票
3 回答
782 浏览

objective-c - NSDate 内存问题(再次)

我正在开发一个图形应用程序,并试图将渲染器从 OpenGL 更改为 Quartz2D,以使文本渲染更容易。

之前工作正常的保留 NSDate 对象突然似乎正在释放自身,当 NSMutableString 尝试附加它的描述(现在为“nil”)时导致崩溃。

构建和分析不报告任何潜在问题。

简化后,代码如下所示:

我应该强调,实际的代码比这要复杂得多,有一个单独的线程也访问日期对象,但是合适的锁已经到位,并且在单步执行代码时[aDate release]不会在任何地方调用。

使用[[NSDate alloc] init]具有相同的效果。我还应该补充一点,init 是第一个被调用的函数。

谁能提出一些我可能忽略的东西,或者为什么 NSDate 对象正在(或似乎正在)释放自己?

0 投票
2 回答
894 浏览

iphone - NSZombieEnabled 破坏工作代码?

我有以下方法UIImageManipulation.m

我用不同的观点来称呼它:

(imageView是之前分配的一个UIImageView)

这在我的代码中效果很好。我完美地调整了图像的大小,并且抛出了零错误。我也没有在构建->分析下弹出任何东西。但是第二次我打开NSZombieEnabled调试另一个EXC_BAD_ACCESS问题时,代码就中断了。每一次。我可以NSZombieEnabled关闭,代码运行良好。我打开它,然后砰的一声。破碎的。我注释掉这个电话,它又可以工作了。每次,它都会在控制台中给我一个错误:-[UIImage release]: message sent to deallocated instance 0x3b1d600. 如果 `NSZombieEnabled 关闭,则不会出现此错误。

有任何想法吗?

- 编辑 -

好吧,这要死我了。我到处都设置了断点,但我仍然无法抓住这个东西。这是我调用该scaleImage方法时的完整代码:

另一种方法UIImageManipulatormakeRoundCornerImage_

不过,这与这种方法有关。必须。如果我将其注释掉,它会很好用。如果我把它留在里面,错误。但它不会在NSZombieEnabled关闭时抛出错误。

0 投票
2 回答
529 浏览

objective-c - 应用程序启动后立即释放自定义类

我在 nib 文件中添加了一个类对象。所有连接都已建立。

但是由于某种原因,对象一被创建就被释放。

这是代码:

控制.h:

控制.m:

这是控制台日志:

[会话开始于 2010-06-09 19:47:57 +1000。]
2010-06-09 19:47:58.771 App[91100:207] ZOMGWTF?

在我单击消息 addPoint 的按钮后,它当然会崩溃。

2010-06-09 19:47:59.703 App[91100:207] *** -[control] performSelector:withObject:withObject:]: 消息发送到已释放实例 0x3843d80

有没有人有任何想法?

0 投票
3 回答
189 浏览

iphone - 我如何查看是否正在对 uikit 对象或不是我自己创建的任何对象调用 dealloc

我想我有一个 UIImage 的保留计数比它应该有的要高,而且我可能正在泄漏内存。我将此图像用作缩略图,为 uibutton 设置自定义背景。所以 uibutton 持有对它的引用,我也是如此。但是,retainCount 不是 2,而是 3。如果我想在那里放置日志消息,然后将使用的类从 UIImage 更改为我的类,我是否必须创建一个自定义 UIImage 派生类并覆盖 dealloc,或者是否有更简单的方法. 提前致谢。

0 投票
1 回答
622 浏览

cocoa-touch - 节目接收信号:“EXC_BAD_ACCESS”

我正在使用 cocos2d 编写代码。我想释放我分配的所有内存。我已经通过以下方式在 dealloc 方法中完成了它。
我发布的所有对象都在接口文件中声明,属性(分配)已设置并在实现文件中合成。
我使用 alloc 方法来创建它们

但我得到:程序接收信号:“EXC_BAD_ACCESS”。我调试它在 [super dealloc] 处显示错误;

我在内存管理方面完全错了吗?或者我错过了什么。谢谢你。