【发布时间】:2010-01-12 17:26:42
【问题描述】:
我有以下代码:
eachShape(void *ptr, void* unused) {
cpShape *shape = (cpShape *) ptr;
id obj = shape->data;
NSLog(@"shape->data: %@", obj); // this is where EXC_BAD_ACCESS can occur
...
你们中的一些人可能会从 iPhone 开发中使用的 Chipmunk 物理框架中认出它。基本上我在这里崩溃是因为我在其他代码中关于 cpSpace 所做的事情,但我想弄清楚这里发送了什么对象类型并导致我的 NSLog 语句崩溃(并造成其他破坏)。
将类型和/或内容从 void 指针转储到 NSLog 调用的最佳方法是什么?
【问题讨论】:
-
在通过 void* 的对象中发现问题。他们的属性修饰符在应该保留时设置为分配。因此,当我们到达 NSLog 代码时,指针的引用已经消失/无效。
标签: objective-c chipmunk