Tôi có một số quy tắc khá phức tạp để di chuyển các hàng xung quanh trong một UITableView
. Có một số phần và hàng không xác định trên mỗi phần và dựa trên các quy tắc khác nhau, các hàng có thể được di chuyển trong hoặc giữa các phần của người dùng đến các vị trí cụ thể khác.Đâm trong khi cố di chuyển các hàng của UITableView
Tất cả dữ liệu đang cập nhật và mọi thứ đều hoạt động. Nhưng đôi khi, sau khi di chuyển một hàng, ứng dụng sẽ giả ra và đột nhiên sẽ có một không gian trống, nơi một hàng sẽ được hiển thị.
Tôi đang sử dụng:
- (NSIndexPath *)tableView:(UITableView *)tableView
targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath
để xác định nơi người dùng được phép kéo các hàng dựa trên nơi các tế bào là. 98% thời gian hoạt động. Nhưng trong một số trường hợp, khi người dùng chỉ được phép kéo giữa các phần (không thể sắp xếp lại các hàng trong phần), lỗi này xuất hiện, sau đó ứng dụng gặp sự cố sau khi cuộn qua khu vực không có hàng.
Trường hợp ngoại lệ ném là khá vô dụng:
Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSRangeException', lý do: '*** - [NSCFArray objectAtIndex:]: chỉ mục (6) vượt quá giới hạn (6)
Không có mã nào của tôi ở trên ngăn xếp. Phương pháp UITableView cụ thể cuối cùng là
-[UITableView(UITableViewInternal) _visibleCellForGlobalRow:]
Có ai nhìn thấy vấn đề này xảy ra trước? Ý tưởng nào?
Bạn đã bao giờ giải quyết Ed này? Không có câu trả lời nào được đánh dấu đúng và tôi cũng thấy các vấn đề tương tự. – coneybeare
Không, tôi chưa bao giờ giải quyết vấn đề này. Tôi đã phải nới lỏng các quy tắc quản lý nơi một hàng có thể được kéo đến để nó sẽ không xảy ra –
Bạn đang làm bất kỳ loại hoạt động tải lại (chẳng hạn như reloadData, reloadSections, hoặc reloadRowsAtIndexPath) trong phương thức moveRowAtIndexPath của bạn? Tôi đã có cùng một loại vấn đề, và tôi đã cố gắng để tải lại trong một performSelector chậm như đề xuất của Tom S. dưới đây, và nó dường như làm việc, ngoại trừ tôi đặt sự chậm trễ ở 1 giây để giữ cho iPhone 3.x, 4 .x, và mô phỏng hạnh phúc. Đó là một chút hackish để chắc chắn. –