2011-06-23 82 views
35

Về cơ bản tôi đang lưu trữ chỉ mục của một mảng trong NSInteger. Tôi bây giờ cần nó như là một NSIndexpath, tôi đang đấu tranh để xem và tìm một cách để chuyển đổi NSInteger của tôi để NSIndexpath vì vậy tôi có thể tái sử dụng nó.Chuyển đổi NSInteger thành NSIndexpath

+0

gì bạn cần 'NSIndexPath' cho? Bạn có cần nó cho một 'UITableView'? – albertamg

+0

Được sử dụng khi gọi báo cáo cập nhật cho sqlite. Tôi nghĩ rằng tôi bây giờ chuyển đổi sang NSIndexPath nhưng tôi cần NSIndexPath.row và điều này ném một lỗi. Bất kỳ ý tưởng? – Dan

+0

Bạn có thể ** không ** gọi 'hàng' trên một đường dẫn chỉ mục được tạo bằng' indexPathWithIndex: '. Để tạo một đường dẫn chỉ mục, bạn có thể gọi 'hàng' trên nó, bạn có thể sử dụng' indexPathForRow: inSection: '. – albertamg

Trả lời

86

Đối với một int index:

NSIndexPath *path = [NSIndexPath indexPathWithIndex:index]; 

Tạo Index của mặt hàng đó trong nút 0 đến thời điểm để theo the reference.

Để sử dụng indexPath trong một UITableView, phương pháp thích hợp hơn là

NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section]; 
+0

Cảm ơn. Tôi vẫn có thể làm đường dẫn. – Dan

3

Sử dụng các phương pháp dưới đây của lớp NSIndexPath.

+ (id)indexPathWithIndex:(NSUInteger)index; 
+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length; 
- (id)initWithIndex:(NSUInteger)index 

Sử dụng như sau và cũng đừng quên releasemyIndexPath đối tượng sau khi sử dụng.

NSIndexPath *myIndexPath = [[NSIndexPath alloc] initWithIndex:[myIntObj intValue]]; 
7

Nếu bạn cần một NSIndexPath cho một UITableView, bạn có thể sử dụng indexPathForRow:inSection: (reference). Đường dẫn chỉ mục được chuyển đến chế độ xem bảng phải chứa chính xác hai chỉ mục xác định phần và hàng. Đường dẫn chỉ mục được tạo với indexPathWithIndex: chỉ chứa một chỉ mục và sẽ không hoạt động với chế độ xem bảng.

2

Swift 3:

let indexPath = IndexPath(row: 0, section: 0) 
Các vấn đề liên quan