问题标签 [nszombies]

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 回答
739 浏览

objective-c - 过度释放问题和僵尸

如果我取消注释发布声明,这个程序就会崩溃。我知道我过度释放并很快意识到这一点。但是,只是为了测试僵尸,我打开了它们(NSZombiesEnabled = YES 和 CFZombieLevel = 16),程序运行良好并且没有抛出异常。

是什么赋予了?我以为打开僵尸会告诉我我是多么愚蠢……不解决它。

0 投票
1 回答
2451 浏览

xcode - 如何在 XCode4 中设置 NSZombiesEnabled?

如何在 XCode4 中启用 NSZombiesEnabled?我曾经使用这个参数来调试 XCode3 中的 EXC_BAD_ACCESS。不知道在 XCode4 中在哪里做。

0 投票
1 回答
694 浏览

ios - 如何调试Cocos2d去除精灵内存问题

一段时间以来一直在为 iOS 开发塔防游戏。我正在使用 Cocos2d(不确定 v0.99.5)。当我开始删除精灵时,最近开始遇到一些问题。

使用仪器和僵尸拥有个人资料,这就是我得到的:

僵尸踪迹 更新精灵(以及删除它们)的代码位于更新中:

GameSprite.m 中的 remove 方法:

第一个块更新 SpriteBatchNode/textureAtlas 中的精灵。剩下的三个块检查不同的对象是否应该被删除。(他们的活动变量设置为否?)。我有三个不同类型的方块的原因是因为射弹对它们射击的小兵有(弱)参考,需要在小兵之前删除。

所以我的问题是,当射弹击中小兵并且要移除射弹(以及向该小兵射击的所有其他射弹)时,它会随机崩溃)。爬虫引用计数降至 0,但似乎仍在 childs 数组中。因为我得到的错误是:

在我用 (**) 标记的行上

要么是我理解 Cocos2d 的 removeFromParentAndCleanUP: 的问题,要么是我处理弹丸-蠕变-关系的“解决方案”从记忆的角度来看是不好的。有关如何解决此问题或进一步调试的任何想法?

0 投票
1 回答
92 浏览

debugging - 需要帮助查找“对象不能为零”错误消息的原因

在我的 iPad 应用程序 iOS 6.0 XCode 4.5 中,我在运行时收到以下消息:

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSArrayM insertObject:atIndex:]: object cannot be nil”

我看了又看,但我没有看到它发生在哪里。我设置了 NSZombies,但在 Instruments 中没有得到任何有意义的东西。是否有工具或设置或至少可以告诉我发生这种情况的地方?

0 投票
2 回答
624 浏览

ios - UIKit 和 QuartzCore 共享 CALayer 的 EXC_BAD_ACCESS

我正在试验一个我无法解决的 EXC_BAD_ACCESS 错误,所以在这里我将它介绍给您,希望能得到一些帮助:)

通常我使用仪器僵尸来解决这种错误,但这一次似乎并不容易......

正如您在附图中看到的那样,看起来我与这个对象没有交互;它仅由 UIKit 和 QuartzCore 保留/发布,所以我不知道在哪里查看或如何解决它。

有什么提示吗?谢谢!

图片网址:http: //i.stack.imgur.com/6R7f0.png 在此处输入图像描述

0 投票
0 回答
876 浏览

ios - UITextField 在简历上崩溃的应用程序

我有一个 UITextField 我在模式对话框中呈现。在触摸 UITextField 时,会显示 ABPeoplePicker(联系人选择器)(也是模态的)。如果我随后关闭 ABPeoplePicker 和最初呈现的模式对话框,然后将应用程序置于后台,我会在应用程序恢复时遇到 EXC_BAD_ACCESS 崩溃。

使用僵尸:

我在这里没有做任何太花哨的事情。我只是将我的几个 ViewController 方法绑定到情节提要中的 UITextField 的“Editing Did Begin”和“Editing Did End”事件,以便呈现和关闭 ABPeoplePicker:

选择联系人后,会发生以下情况 (ABPeoplePickerNavigationControllerDelegate):

最后:

有趣的是,崩溃只发生在 iOS 6 中。iOS 5 运行良好。

iOS 内部是否有一些与通知相关的东西试图以某种方式向我的 UITextField 发送消息?我缺少一些潜在的清理任务?我在其他地方使用相同的技术没有问题,这真的让我很困惑。我什至尝试将原始文本字段移动到“推送”样式演示文稿(而不是模态),以排除由于嵌套的模态呈现对话框引起的任何问题。

请注意,我使用的是 ARC,并且 UITextField 在我的 ViewController 中被声明为弱引用。

任何见解都非常感谢!谢谢!

更新

好的,我发现了问题,但我不明白为什么会这样。我已将问题归结为在 customerBeginEditing 中对 [sender resignFirstResponder] 的调用。出于某种原因,此调用导致在应用程序恢复时调用 [NSNotificationCenter addObserver:selector:name:object:](但仅当不再显示具有 UITextField 的页面时)。我可以通过修改我的代码来解决我的问题,以便根本不必调用 resignFirstResponder 但我仍然不明白 iOS5 和 iOS6 之间发生了什么变化导致了这个问题。有人有想法么?

0 投票
2 回答
2573 浏览

ios - 一起滚动 2 个组件时 UIPickerView 崩溃

其实,我之前也问过同样的问题,但我还没有找到解决方法,所以我又来了。

我的情况:

我有一个UIPickerView带有2个相关组件的,第二个或右侧组件中的行数和内容随着当前选择的第一或左侧组件中的行而变化,这是一个非常常见且有用的功能UIPickerView

现在,如果我使用 2 个拇指同时滚动两个组件,我的应用程序很快就会很容易崩溃,并显示以下信息:

具有讽刺意味的是,我无法调试它。

实际上,如果我在方法中添加断点pickerView:didSelectRow:inComponent,我什至不能同时快速滚动两个组件,因为每次我将手指放在屏幕上时它都会在断点处停止。

我只能猜测原因是当第一个组件被滚动时,第二个组件中的假定行数不断变化,但与此同时,它UIPickerView正在询问第二个组件的标题和编号,然后它崩溃了。

但是我还没有找到任何可以用来判断一个组件是否被滚动的方法。所以我找不到正确的时间来拒绝pickerView'sdelegatedataSource第二个组件的请求。

有没有人遇到过类似的情况?

谢谢你的帮助!我会很感激的!


在我的代码中,这个错误是关于 的typePicker,所以我删除了所有其他与 . 无关的代码typePicker

在这里,typeand是 Core Data 中的两个实体,以及一个名为reach from todetailTypes的一对多关系。detailstypedetailsTypes

例如,如果类型是“国家”,detailTypes则将是“美国”、“法国”、“中国”等。

所以在 中typePicker,第 1 个或左边的组件显示所有类型实体,第 2 个或右边的组件detailTypes根据第 1 个组件中当前选择的类型显示相应的实体。

并且两个组件的第一行typePicker总是“None”,让用户不选择特定的类型,这就是代码中有很多“+1”的原因。

0 投票
1 回答
84 浏览

ios - 如何在 iOS 中修复 NZombie

我正在 iOS 中开发应用程序

在此处输入图像描述

这个应用程序捕获签名并从数据库中重新绘制它们......

当我添加线程时出现问题,用于在绘制签名时实时打印标签上的生物特征数据,随机崩溃,我的意思是有时它会绘制完整的签名,有时只是签名的 3/4 甚至没有一半……

使用了一个名为 Instruments 的工具来检测 NSZombies,这就是我得到的...

在此处输入图像描述

在此处输入图像描述

并查看代码,这是我找到的代码部分......

在此处输入图像描述

这是它崩溃的一段代码:

它说 -[NSConcreteMutableAtributedString lenght] 是僵尸的负责人

这是我的代码:

和线程调用的代码:

预先感谢您的支持

0 投票
2 回答
697 浏览

iphone - 故事板修改后Objective-C释放僵尸对象

我对 iOS 应用程序有一些迷恋。经过调查,我发现问题是一些悬空指针。为了找到它的来源,我开始使用“Zombies”跟踪模板在模拟器(iOS 6.1)上分析代码。

测试场景非常简单:选择桌子上的某个项目,然后通过调用适当的摇杆名称移动到下一个控制器,然后按返回按钮。当“后退”动画完成时会出现粉碎。

这是带有已发布僵尸对象数据的表格分析器(我删除了无趣的列,例如:#;类别 - 始终等于 CALayer;时间戳):

现在这个表没有指向我的代码,所有条目都与系统库相关:UIKit 或 QuartzCore。所以我不能显示我的代码,因为我不知道哪个部分是错误的并且有很多。

当我尝试查看更改历史记录时,在第一次提交时遇到此问题的唯一重大更改是在情节提要中进行的更改。这很奇怪,因为情节提要的变化不应该有这样的问题。我不能说到底发生了什么变化(故事板 XML 很难阅读)。

任何建议我如何找到/解决这个问题?或者也许有人有类似的问题?

0 投票
1 回答
87 浏览

ios - CCMenu 导致 EXC_BAD_ACCESS 错误,但我无法回溯我的代码

我遇到EXC_BAD_ACCESS了问题cocos2d-iphone 1.0.1

我已启用NSZombies,希望查看我在代码中的什么位置访问了我不应该访问的对象。

问题发生在CCMenu.m,这里:

我可以观察到那selectedItem_是一个僵尸。

这是CCMenu代码,不是我的——我应该看看我自己的代码。所以我看一下回溯:

在此处输入图像描述

这并没有真正帮助我:回溯没有到达我自己的代码。那是cocos2d-iphone代码。

那我应该怎么做才能解决这个错误呢?