@Owen Câu trả lời của Godfrey tốt hơn câu trả lời được chấp nhận từ @iPatel. Dưới đây là một số làm rõ thêm mà tôi đã không thể phù hợp với một bình luận về câu trả lời của mình, vì vậy tôi sẽ sao chép câu trả lời của mình và thêm vào nó ở đây. Tín dụng thuộc về Owen.
Từ @Owen Godfrey:
Bên NSIndexPath, các chỉ số được lưu trữ trong một mảng c đơn giản gọi là "_indexes" định nghĩa là NSUInteger * và độ dài của mảng được lưu trữ trong "_length" được định nghĩa là NSUInteger. Phần "access" là một bí danh cho "_indexes [0]" và cả "item" và "row" là các bí danh thành "_indexes 1". Vì vậy, hai chức năng giống hệt nhau.
Về mặt kiểu lập trình - và có lẽ là chuỗi định nghĩa - bạn nên sử dụng "hàng" trong ngữ cảnh của bảng và "mục" trong ngữ cảnh của bộ sưu tập.
Giao diện lõi của NSIndexPath được định nghĩa trong NSIndexPath.h. Việc lưu trữ các chỉ mục nằm trong _indexes, đó là mảng một chiều riêng của NSUInteger. Bản thân NSIndexPath có thể đại diện cho bất kỳ số thứ nguyên nào. Có hai loại có liên quan trên NSIndexPath mở rộng chức năng, một từ UICollectionView.h "NSIndexPath (UICollectionViewAdditions)" và một từ UITableView.h "NSIndexPath (UITableView)". Một từ UICollectionView.h thêm thuộc tính chỉ đọc "item" và các phương thức tiện lợi có liên quan. Một từ UITableView.h thêm thuộc tính "hàng" thuộc tính chỉ đọc và các phương thức tiện lợi có liên quan. Tuy nhiên, cả hai thuộc tính chỉ là trình bao bọc để truy cập giá trị cơ bản trong _indexes [1].
Vì UIKit liên kết với cả hai loại, cả hai bộ chức năng tiện lợi luôn có sẵn, bất kể bạn đang sử dụng IOS ở đâu. Vì vậy, bạn có thể tạo một NSIndexPath từ [NSIndexPath indexPathForRow: inSection:] nhưng lấy chỉ mục thứ hai từ indexPath.item. Giá trị cơ bản là giống nhau cho dù được truy cập bởi indexPath.item hoặc indexPath.row.
Phong cách sẽ sạch hơn nếu bạn sử dụng "mục" với UICollectionView và "hàng" với UITableView vì đó là cách chúng được sử dụng, và điều này làm cho mã dễ đọc hơn. Tuy nhiên chương trình của bạn sẽ không sụp đổ nếu bạn trao đổi chúng.
tham khảo: NSIndexPath
có, hàng 'được sử dụng bởi hàng' UITableView'; 'mục' được sử dụng bởi các ô' UICollectionView'. – holex