문제

무엇보다 더 좋은 방법이 있습니까? 여기에 제안되었습니다 테이블 뷰 셀 사이에 일대일 매핑을 만들려면 NSIndexPath 그리고 독특합니다 NSUInteger 또는 int, 고유 한 것을 만들기 위해 tag 셀의 위젯에 대한 속성 값 (a UIProgressView)?

링크는 a를 통해 메소드를 추가합니다 UIKit 사이를 변환하는 카테고리 확장 NSIndexPath 그리고 int, 그러나 그들은 일정 수의 행보다 적은 일만 작동합니다.

물론, 나는 그 한계에 도달하지 못할 수도 있지만, 누군가가 당신을 생각해 낸지도가 있는지 궁금합니다.

도움이 되었습니까?

해결책

아니요, 실제로 많은 행에 작동하는 방법은 없습니다. 각각 30 억 행을 가진 2 개의 섹션이있는 테이블이 있다면, 60 억 개의 잠재적 인 NSindexPath를 40 억 32 비트 NSintegers에 매핑 할 방법이 없습니다.

(64 비트 앱을 만들고 있다면 똑같은 것은 사실이지만 그 숫자는 예에서 40 억 배 더 커야합니다.)

링크 된 예제에서 섹션 당 10,000 행의 한계를 사용합니다. 당신이 그보다 더 많은 행을 가질 수 있을지도 모른다면 더 큰 상수를 사용할 수 있습니다. 즉, 4,000 개의 섹션이 없다는 것을 알고 있다면 최대 행 수로 1,000,000을 사용할 수 있습니다.

"실제 프로그래머"는 물론 65536을 상수로 사용할 것입니다.

다른 팁

이 작업을 수행 할 필요가 있다면 단순히 섹션 경로를 32 비트 int의 절반으로 바꾸고 행 부분을 다른 행을 다른 것으로 바꾸는 것입니다. 예, 이것은 당신이 65535 개 이상의 요소를 연속으로 가질 수 없다는 것을 의미합니다. 언제라도 마법 상수.

또한 계산적으로 저렴합니다.

일반적 으로이 상황에서는 테이블 뷰 컨트롤러를 각 셀의 대의원으로 설정했지만 셀은 셀을 생성하는 데 사용되는 몇 가지 주요 값과 함께 컨트롤러를 다시 호출 할 수 있습니다. 데이터 세트에 도달하여 값을 끌어내는 방법을 알고 있습니다. 도대체, 당신은 단순히 인덱스 경로를 셀에 저장할 수도 있고 그것으로 다시 전화 할 수 있습니다. INDEXPATH 접근법이나 NSIndexPath를 평평하게하는 이전의 접근 방식을 사용하지 않는 이유는 행을 동적으로 변경하기 시작하면 NSNDEXPATH 사이에 값이 정렬되지 않아 현재 데이터 세트의 값을 만들었 기 때문입니다. 항상 올바른 데이터로 논리적으로 돌아갈 수있는 일종의 키를 갖는 것이 훨씬 낫습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top