2016-03-11 19 views
10

Tôi muốn đặt một câu lệnh chuyển đổi kiểm tra giá trị nếu NSIndexPath. NSIndexPath là một lớp và nó bao gồm (trong số những thứ khác) của phần và hàng (indexPath.row, indexPath.section)kiểm tra hàng và phần của NSIndexPath

đây là cách tôi sẽ xây dựng một câu lệnh if để kiểm tra cho một hàng và một phần cùng một lúc:

if indexPath.section==0 && indexPath.row == 0{ 
//do work 
} 

Dịch chuyển nhanh cho dịch vụ này là gì?

+0

Có thể hữu ích: http://stackoverflow.com/questions/30189505/missing-return-uitableviewcell. –

Trả lời

18

Có một cách (chỉ hoạt động này vì NSIndexPaths mình là equatable):

switch indexPath { 
case NSIndexPath(forRow: 0, inSection: 0) : // do something 
// other possible cases 
default : break 
} 

Hoặc bạn chỉ có thể kiểm tra đối với số nguyên, sử dụng một mô hình tuple:

switch (indexPath.section, indexPath.row) { 
case (0,0): // do something 
// other cases 
default : break 
} 

lừa khác là sử dụng switch true và cùng điều kiện bạn đã sử dụng:

switch true { 
case indexPath.row == 0 && indexPath.section == 0 : // do something 
// other cases 
default : break 
} 

Cá nhân, tôi sẽ sử dụng các báo cáo lồng nhauswitch nơi chúng tôi kiểm tra đối với indexPath.section ở bên ngoài và indexPath.row ở bên trong.

switch indexPath.section { 
case 0: 
    switch indexPath.row { 
    case 0: 
     // do something 
    // other rows 
    default:break 
    } 
// other sections (and _their_ rows) 
default : break 
} 
+1

Tôi đồng ý với cách tiếp cận lồng nhau ưa thích của bạn, nhưng thứ hai cũng có thể được thực hiện như một 'switch (indexPath.row, indexPath.section) {case (0,0): ...' –

+0

@MartinR D'Oh! Tôi, giống như, Mister Tuple và tôi vẫn đánh rơi quả bóng trên cái đó. – matt

+1

Cách tiếp cận thứ hai trông rất tuyệt. Cảm ơn bạn! – brumbrum

6

Chỉ cần sử dụng IndexPath thay vì NSIndexPath và làm như sau:

Tested trong Swift 3 và 4:

switch indexPath { 
case [0,0]: 
    // Do something 
case [1,3]: 
    // Do something else 
default: break 
} 

Các số nguyên đầu tiên là section, điều thứ hai được row.

+0

Chính xác những gì tôi đang tìm kiếm, cảm ơn! –

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