bagaimana mengetahui apakah uitableview memiliki sel yang dipilih

Saya sedang mengembangkan Aplikasi dan pada titik tertentu saya memiliki beberapa tampilan yang sesuai. Saya ingin tahu di luar metode delegasi, suatu tindakan misalnya, apakah tampilan tabel memiliki sel yang dipilih dan yang mana.

Saya mencoba menggunakan: (NSIndexPath *)indexPathForSelectedRow tetapi tidak berhasil, karena jika saya tidak memiliki sel yang dipilih, [(NSIndexPath *) row] mengembalikan "0" dan bukan nihil

bisakah anda memberikan bantuan??

terima kasih..


person Frade    schedule 21.07.2011    source sumber
comment
Anda dapat menyimpan indeks baris yang dipilih di ivar.   -  person dasdom    schedule 21.07.2011
comment
Ya, itu sebuah ide. Saya sudah memiliki NSMUtablearray yang menyimpan sel yang dipilih. Karena saya tidak dapat mengganti objek nil di NSMUtablearray, saya tidak dapat memulai indeks i ke nil. Jadi masalahnya adalah mengetahui apakah tampilan tabel yang ditentukan memiliki sel yang dipilih. membuat diriku jelas? terima kasih   -  person Frade    schedule 21.07.2011


Jawaban (1)


Metode Anda benar - indexPathForSelectedRow memang mengembalikan nil jika tidak ada sel yang dipilih. Tetapi jika Anda mencoba mengirim pesan ke objek nihil dan menggunakan nilai yang dikembalikan, nilainya akan menjadi 0, jadi Anda perlu menguji apakah nilai jalurnya nihil atau tidak sebelum mencoba mendapatkan baris sel darinya:

NSIndexPath *path = [table indexPathForSelectedRow];
if (path){
   row = [path row];
   ...
}
else{
 // No cell selected
}

P.S. nil hanyalah sebuah typecast 0, jadi dalam praktiknya keduanya adalah hal yang sama.

person Vladimir    schedule 21.07.2011