问题标签 [nszombie]
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 - respondsToSelector 发送到释放的对象
如果我向 NSXML Parser 发送错误的 URL,我会尝试找出我的应用程序崩溃(RSS 阅读器)的原因。我得到了一个EXC_BAD_ACCES
S。所以经过一番搜索后,我发现我必须使用 Zombies。所以我在环境中添加了以下参数:
我还添加malloc_error_break
了断点。然后我在 GUI 中添加了一些其他断点并按下 Build and Debug。在控制台中,我收到以下消息:
2010-08-28 18:41:49.761 RssReader[2850:207] *** -[XMLParser respondsToSelector:]: message sent to deallocated instance 0x59708e0
有时我还会收到以下消息:
wait_fences: failed to receive reply: 10004003
如果我输入“shell malloc_history 2850 0x59708e0”,我会得到以下信息:
这是什么意思?我怎么知道 0x59708e0 是哪个对象?我找不到导致我的应用程序崩溃的代码。我唯一知道的是它应该是一个 respondsToSelector 消息。我为所有的 respondsToSelector 消息添加了一个断点。他们被击中,但应用程序并没有在那时崩溃。我还尝试将它们注释掉,除了一个并且还让应用程序崩溃。没有被注释掉的那个没有被击中。我在哪里有内存泄漏?
下一个令人困惑的事情是 NSXML Parser 继续其工作,尽管调用了 parseErrorOccurred 委托。抛出两次错误后,应用程序崩溃。
为什么在禁用性能工具的情况下运行中的僵尸?
编辑:
现在我使用了这个指令(无法发布。抱歉。垃圾邮件预防)我得到了这个工作。这是什么意思?
@Graham:在我的解析器类中我实例化NSXMLParser
:
在我搜索错误期间,我注释掉了发布方法。目前 rssParser 永远不会在解析器类中发布。
在我的RootViewController
课堂上,我实例化了我的解析器:
如果我不在这里释放它,它就不会崩溃。但是对于每个分配我都必须做一个释放?还是我应该自动NSXMLParser
释放connectionDidFinishLoading
?
iphone - 僵尸消息在 For 循环中
我有一个 ivar,keys
它是一个包含 50 个字符串的 NSMutableArray。当我的视图加载时,我在 Instruments 中收到一个僵尸消息错误,它引导我到这行代码:
我保留了保持它活着的值,这样remove
就不会导致崩溃,但它仍然会。我试过不保留和自动释放,但它仍然崩溃。当我有一个局部变量但没有一个 ivar 时,这种保留和自动释放的方法有效...
我需要一个 ivar,因为我需要访问其他地方的字符串。
谢谢
iphone - 如何在调试 iPhone 应用程序时使用 Zombie?
如何在调试 iPhone 应用程序时使用 Zombie?
iphone - iphone内存管理奇怪的问题
这是我用 xcode 编写的一段代码
如果我是对的,它应该在调用 printmessage 函数时给出运行时错误,因为此时 myFoo 被释放。但是在 xcode 中,代码正在运行并且打印消息被调用,这是由于 xcode 上的设置而导致的问题吗?
问候阿比吉特
objective-c - [array count] 向僵尸发送消息
我有一个 ivar 可变数组,我在 viewDidLoad 中设置如下:
然后在稍后的方法中,点击一个按钮,我执行以下操作,但数组似乎过度释放......与 Zombie 消息:
我该如何解决?
谢谢。
objective-c - arrayWithContentsOfFile:导致崩溃
我正在创建一个应用程序,但出现 EXC_BAD_ACCESS 错误。
代码
和:
DNPROJECTS文件的内容
见http://gist.github.com/618628
控制台和仪器
这是控制台在运行时所说的内容(启用了 NSZombie):
这是 Instruments 在 NSZombie 测试中所说的:
僵尸消息
一条 Objective-C 消息被发送到地址为 0x10012af80 的已释放对象(僵尸)。
堆栈跟踪
问题
我真的不知道如何修复这个双重版本。据我所知,projects
除了dealloc
. 有人可以帮我吗?谢谢。
objective-c - NSZombieEnabled 不会关闭
在我的论点中,我将 NSZombieEnabled 设置为 NO。
我正在检查它是否已启用:
我的调试器说它仍然处于启用状态。为什么?
iphone - 无法让 Zombies 在 XCode 中工作
我正在尝试解决我的第一个非常困难的 EXC_BAD_ACCESS 问题。我从很多教程和博客中看到,我可以使用 Zombies 来帮助我找出哪里出错了。但我不认为我的僵尸在工作,而且我肯定没有从控制台中得到任何有用的东西。
当我启动程序时,我看到:This GDB was configured as "x86_64-apple-darwin".Setting environment variable "NSZombieEnabled" to null value.
最终,我看到了一些我使用的 NSLog 跟踪,然后:
一点帮助都没有。有任何想法吗?我有一个偷偷摸摸的怀疑,即使僵尸在工作,它也无法告诉我错误的访问发生在哪里。Objective C 让我很难过——这在 ActionScript 中需要 3 秒 :(
你说崩溃就在这里(下次编辑问题):
ios - 对象 0xb50dd20 的错误:双重释放
有没有人熟悉这个问题。我已经阅读了这篇文章,但是当我不知道错误源自代码的何处时,我很难提供代码。有人有想法么?
名称(9369,0xa09cd500)malloc:* 对象 0xb50dd20 的错误:double free *在 malloc_error_break 中设置断点以进行调试
iphone - 在 [[SKPaymentQueue defaultQueue] addPayment:payment] 上的应用程序购买崩溃
我的应用内购买有效。我展示了一个带有“购买”UIButton 的 ModalView。您单击按钮,应用内购买将完成该过程。你甚至可以连续做几次。
如果您打开模态视图,然后关闭模态视图(使用 UITabBarButtonItem),然后重新打开模态视图并点击“购买”按钮,则会出现问题。应用程序崩溃,我得到一个 NSZombie,上面写着
*** -[InAppPurchaseManager respondsToSelector:]:消息发送到已释放实例 0x1c7ad0
NSZombie 指向 .m 文件中的第 160 行。我已经用评论标记了它。
我从这个页面得到了原始代码:http: //troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/
我已经为此苦苦挣扎了很多天......任何帮助都会很棒。
这是.h
这是.m