를 반환 내가 중단 점을 설정 한 후 코드입니다 (나는 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
IS가 반환되었지만 올바르지 않습니다. 그 선 후
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