미디어 플레이어의 최근 기록과 미래 큐를 나타내는 섹션이있는 UITableView를 구현하려고합니다. 큐 유형 구조가 작업의 특성을 나타내므로이 작업에 가장 적합 할 수 있지만 미래 큐 부분을 편집 할 수있는 요구 사항은 몇 가지 문제점을 제기합니다.가능한 편집 가능한 UITableView 데이터 소스의 구현
모든 요소가 연속적으로 저장된 벡터 형식 구조와는 달리 연결된 목록이 미디어 표현을 저장하는 데 가장 좋은 옵션이라고 생각합니다. 큐에있는 객체를 이동하거나 제거 할 때 끝에 객체를 추가하는 경우 링크 된 목록이 벡터보다 효율적입니다. 단순히 몇 개의 포인터를 할당하면 전체 청크를 이동하는 것보다 가벼운 것 같습니다. 메모리의. NSMutableArray
의 내부 구현 세부 사항은 아주 희미한 것처럼 보이지만 벡터 유형이라고 가정합니다.
그러나 Objective-C에서 실제로 연결된 링크 구현을 본 적이 없습니다. 또한 UITableViewDataSource
의 구조는 단순히 목록을 반복하는 것이 아니라 특정 행을 사용하여 호출해야하므로 특정 인덱스를 찾는 것이 비용이 많이 든다는 점에서 링크 된 목록 구현의 약점을 나타냅니다. cellForRowAtIndexPath:
이 순서대로 호출되는 경우에는 적합하지 않지만 목록을 반복하는 데만 사용하려면 indexPath
매개 변수를 무시하는 것이 무식한 것처럼 보입니다.
이러한 구조는 일반적으로 어떻게 구현됩니까? 제안 된대로 링크 목록을 반복하는 것이 나쁜 생각입니까?
"연결 목록"이란 무엇입니까? 이것은 Objective-C 나 Swift의 표준 데이터 유형이 아닙니다 ... –
@WilliamLeGate [링크드 목록] (https://en.wikipedia.org/wiki/Linked_list)은 일반적인 개념으로 데이터 메모리를 통해 확산되고 포인터로 서로 연결된 노드에 저장됩니다. – Jake