这里之后,我设置一个断点的代码(我加入了强制类型究竟比赛我在GDB类型,但它有没有他们相同的结果):运行代码返回垃圾;打字调试器返回正确的结果
NSUInteger addedRefOrder = (NSUInteger)[(NSArray*)[sourceMap tileRefsAtX:[addedRef x] y:[addedRef y]] indexOfObject:addedRef];
下面是我在GDB类型:
(gdb) print (NSUInteger)[(NSArray*)[sourceMap tileRefsAtX:[addedRef x] y:[addedRef y]] indexOfObject:addedRef]
$2 = 1
(gdb) print addedRefOrder
$3 = 9223372036854775807
为了记录在案,我相当肯定,后者的价值NSNotFound
。这个问题到底意味着什么?我怎么开始调试呢?
编辑:我是积极的对象是在数组中。返回了NSNotFound
,但它不正确。下面是在同一个应用程序在别处另一种情况:即行后
NSPoint irisPoint = NSMakePoint([currentObject x], [currentObject y]);
断点右:
(gdb) print irisPoint
$1 = {
x = 4301764096,
y = 4301764096
}
(gdb) print [currentObject x]
$2 = 4
(gdb) print NSMakePoint([currentObject x], [currentObject y])
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000018
0x00007fff885e010a in objc_msgSend()
该对象位于数组中。 – andyvn22 2011-03-11 00:13:30