我正在尝试调试在iOS 5.1下运行的问题,当我在调试器中停止获取错误并尝试使用调试器打印内容时,我收到消息:
错误:警告:在声称捕获Objective-C对象指针的上下文中停止,但"self"不可用; 假装我们处于一般背景下
劳驾?有人知道我在这里做了什么吗?
代码太复杂了,任何人都不希望看到它 - 我大多希望有人可以告诉我调试器消息的含义.
这曾经只是间歇性地失败但现在大多数都失败了.操作一般(或可能总是)在我第一次在iOS 5.1中尝试时,偶尔在第一次之后,并且显然总是在iOS 6中工作.
如果它有助于了解一般上下文...我正在尝试将一个刚编写的对象添加到ALAssetsGroup,因此这是在非UI线程上的完成块中.对于完成块,我有一个看似合理的堆栈回溯.失败是因为存储的ALAssetsGroup不再具有有意义的值 - 或者说它的NSLog知道它是ALAssetsGroup对象.这个值在一个地方分配(并记录,所以我跟踪它),我可以看到键值观察的初始分配,我不认为它是以KVO-sorta方式改变的.
这是一个调试器错误(是的,想象一下!)
只需重新启动 XCode,这对您来说就不再是问题了:)
编辑:
精神!我在想别的事情。
您正在创建一个保留周期,到目前为止,调试器以这种方式对这个特定的保留周期进行分类(正如我所说,一个错误)。
要解决此问题,请创建以下内容的弱副本self:
__weak __typeof(self)weakSelf = self;
那么对于self给你带来麻烦的:
改成self.objectweakSelf.object
| 归档时间: |
|
| 查看次数: |
2085 次 |
| 最近记录: |