2011-01-01 37 views
47

Tôi cần chuyển đổi nsindexpath var thành NsInteger hoặc đơn giản là int. ví dụ:Làm thế nào để chuyển đổi NSIndexpath thành NSInteger hoặc đơn giản là int?

int rowIndex = [mGoogleBaseTable selectedRow]; 
//mGoogleBaseTable is a NSTable type in Macdevelopement.. 

& &

int rowIndex = [mGoogleBaseTable indexPathForSelectedRow]; 
//mGoogleBaseTable is a UITableView type in Iphone (iOS)Development. 

selectedRow trả NSInteger đơn giản nhưng indexPathForSelectedRow trả về một NSIndexPath ..

Xin hãy giúp tôi làm thế nào tôi có thể đạt được điều này.

Trả lời

124

Nếu

NSIndexPath *p = ... // some indexpath 

sau đó

NSInteger row = p.row; 
NSInteger section = p.section; 

Đó là tất cả!

+0

cảm ơn .. Tác phẩm của nó. – Tarun

+0

cảm ơn bạn .. hoàn thành công việc là p.row nhưng tôi không hiểu p.section. – AnilPatel

+0

@AnilMetatagg phần này chỉ phù hợp nếu bạn có nhiều phần. – mvds

6

Tôi thích làm việc đó theo cách này

NSNumber *selRow = [[NSNumber alloc] initWithInteger:indexPath.row]; 
+2

Trong trường hợp đó sử dụng tốt hơn 'NSNumber * selrow = @ (indexPath.row);' để dễ đọc – mvds

13

Có lẽ, điều này được thể giúp bạn

NSInteger variable = indexPath.row; 
+0

đơn giản và hiệu quả. mát mẻ. Cảm ơn +1. – Isuru

+0

cũng có thể được sử dụng như yourTextField.tag = indexPath.row để theo dõi và tạo điều kiện bên trong các ô tùy chỉnh của bạn, giả sử nếu bạn muốn cập nhật dữ liệu bên trong một mảng có thể thay đổi. – whyoz

-1

Trong nhanh chóng:

  1. Associate xem bộ sưu tập của bạn để var của bạn:

    @IBOutlet bộ sưu tập var yếuView: UICollectionView!

  2. Trong prepareForSegue func, bạn có thể gọi:

    var indexPath = collectionView.indexPathsForSelectedItems()

7

Trong Swift:

let section: Int = indexPath.section 
    let row: Int = indexPath.row 
1

Đơn giản chỉ cần chuyển đổi thành int bằng,

NSIndexPath * path = ... // some indexpath

int row = (int) path.row;

Các vấn đề liên quan