Dapatkah seseorang menjelaskan sintaks deklarasi metode ini untuk saya? Dalam fungsi ini, jumlah baris UIPickerView (UI mesin slot pada iPhone) sedang dikembalikan. Dari pemahaman saya, Metode ini disebut ' pickerView
', dan mengembalikan NSInteger.
Ini melewati sebuah pointer ke UIPickerview yang disebut ' pickerView
' ... pertama, mengapa metode ini disebut nama yang sama dengan parameter?
Berikutnya ada parameter NSInteger yang disebut komponen yang memberitahu kita komponen mana yang kita hitung untuk baris. Logika untuk memutuskan mana yang ada dalam tubuh metode.
Apa itu numberOfRowsInComponent
? Tampaknya menggambarkan nilai yang kami kembalikan, tetapi berada di tengah-tengah parameter.
- (NSInteger) pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
if (component == kStateComponent)
return [self.states count];
return[self.zips count];
}
sumber
Dalam Objective-C, nama metode terdiri dari semua bagian dari deklarasi yang bukan argumen dan tipe. Karena itu nama metode ini adalah:
Metode ini akan setara dengan fungsi gaya-C yang tampak sebagai berikut:
sunting: (dengan terima kasih kepada Jarret Hardie ):
sumber
Menambahkan ke jawaban sebelumnya, saya hanya ingin mengatakan bahwa metode Objective-C (atau pesan jika Anda suka) memiliki nama parameter eksternal dan internal .
Jadi dalam hal ini:
numberOfRowsInComponent
adalah nama eksternal , yang akan Anda gunakan saat memanggil metode ini dari luar.Dan
component
adalah nama internal parameter, yang Anda gunakan untuk merujuk ke parameter dari dalam metode.Semoga itu sedikit membersihkannya.
sumber
Tampaknya bagi saya bahwa tanda tangan metode Objective-C lebih seperti kalimat. Setiap parameter layak mendapat bagian dalam nama metode. Sebagai contoh, di C kita dapat memiliki metode ( setPersonData ) untuk mengatur beberapa informasi tentang orang:
dan di Objective-C metode akan lebih deskriptif ( setPersonName: andAge: andHeight:) , seperti
sumber