2011-09-05 10 views
3

저는 이걸 가지고 길을 잃었습니다 ... 왜 NSTableView에서 행을 선택 취소 할 수 없는지 모르겠습니다. 인터페이스 작성기에서 빈 선택을 허용했지만 deselectRow : 또는 deselectedAll :을 호출하자 마자 예외가 발생합니다. 이 코드 예를 들어NSTableView 행의 선택을 취소 할 때 예외가 발생했습니다.

:

NSLog(@"Currently selected row index: %ld", [self.tableView selectedRow]); 
[self.tableView deselectRow:[self.tableView selectedRow]]; 

내가 얻을 : 나는 deselectRow 호출하는 경우

2011-09-05 MyApp[18939:707] Currently selected row index: 1 
2011-09-05 MyApp[18939:707] *** -[__NSArrayM objectAtIndex:]: index 18446744073709551615 beyond bounds [0 .. 3] 

나는 심지어 오류의 같은 종류를 얻을 : 하드 코드 값 (0 말) 시험용. 그래서 내 NSArrayController 또는 뭔가 바인딩 오류가 발생합니다 가정합니까?

+0

예외는 선택 해제에 반응하는 몇 가지 코드를 가능하게 발생 (내가 아는 그래서 원시)? –

+0

무엇이 원인이 되었습니까? – paulmelnikow

답변

-1

매우 긴 정수는 대개 메모리 주소가 정수로 변환되는 것을 의미합니다. 이것은 대개 스칼라 변수에 객체를 전달함으로써 발생합니다.

IB에서 인터페이스 요소에 대한 selected object 바인딩을 확인하십시오. 어떤 시점에서 스칼라 정수 대신 deselectRow에 개체를 넘깁니다.

0

내 솔루션 당신이 같은 일부 코드가 있습니까 ...

if(row != UINT64_MAX) 
관련 문제