nstableView의 배열에서 객체를 삭제하십시오
-
06-07-2019 - |
문제
빠른. 나는 뭔가를 간과하고있다 ...
NSDictionary의 배열로 구축 된 그룹화 된 테이블보기가 있습니다. 각 배열은 테이블의 섹션입니다. 편집 모드에 있고 사용자가 "삭제"를 클릭하면
- (void)removeObject:(MyClass *)myObject
MyArray removeObject : myObject] 메시지를 보낼 배열을 어떻게 결정할 수 있습니까? nsdictionary에는 indexofobject : method가 없지만 nsarray는 그렇지 않습니다. 나는 상기 객체를 찾고있는 각 배열을 반복 할 수 있다고 생각하지만 그것은 옳지 않은 것 같습니다.
누군가 내 뇌를 제발 딸랑 딸랑 딸랑이 할 수 있습니까?!? 고마워!
해결책
표준 uitableview 프로토콜을 구현 하고이 방법을 사용할 수 있습니다.
(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br> forRowAtIndexPath:(NSIndexPath *)indexPath {
<br><br>//check the section according to your array, if(indexPath.section ==....
<br><br>
if(editingStyle == UITableViewCellEditingStyleDelete) {
<br>
[arrayFoundBefore removeObjectAtIndex:indexPath.row];
<br>
}
<br>}
나는 그것이 확실하지 않은 방법이라고 생각합니다. 누구든지 명확하게 할 수 있습니까?
다른 팁
문제의 메소드가 메시지를 보낸 테이블 뷰를 알아야합니다 (해당 객체의 대의원에 있기 때문에) - 따라서 TableView Delegate의 ViewDidload 메소드에서 배열을 만들거나 또는 대안으로 어떤 것이 있는지 알아낼 수 있습니다. 대표 컨텍스트.
배열을 통해 반복하는 데 분명히 잘못된 것은 없습니다. 사람들에게 물건을 얼마나 자주 삭제하고, 사전은 이것을 상당한 오버 헤드로 만들기에 충분히 큰가?
참조 지점으로, Nsarray 's indexOfObject:
메소드는 어울리는 객체를 찾는 배열을 반복하는 것보다 더 멋진 것은 없습니다.
제휴하지 않습니다 StackOverflow