Objective-C adalah bahasa pemrograman native utama yang dipakai untuk membuat aplikasi Mac. Bahasa ini diextend dari bahasa C yang menggunakan style dari Smalltalk. Semua syntax untuk operasi non object oriented hampir sama dengan C, sedangkan untuk operasi object oriented mengimplementasi dari style Smalltalk. Jadi, sebaiknya anda mempunyai dasar yang cukup dalam pemrograman bahasa C.
Mungkin anda akan merasa aneh dengan struktur objective-c ini, tetapi jangan kuatir karena hampir semua orang mempunyai pendapat sama, termasuk saya.
NSString
Di C, variable string biasanya dideklarasikan sbb:
Di C, variable string biasanya dideklarasikan sbb:
1 | char *s = "ini adalah string" ; |
Dengan NSString, menjadi:
1 | NSString *s = @"ini adalah string" ; |
NSString disini adalah object string.
@”string” akan membuat sebuah object string, yang bisa langsung diassign ke dalam sebuah variable atau menjadi argument dalam sebuah function.
@”string” akan membuat sebuah object string, yang bisa langsung diassign ke dalam sebuah variable atau menjadi argument dalam sebuah function.
Penggunaan Method
Dalam bahasa C atau PHP, pemanggilan method biasanya dilakukan dengan cara berikut:
Dalam bahasa C atau PHP, pemanggilan method biasanya dilakukan dengan cara berikut:
1 2 | addressBook.displayNames(); addressBook.displayNamesWithPrefix( prefix ); |
Berikut caranya dalam Objective-C:
1 2 | [addressBook displayNames]; [addressBook displayNamesWithPrefix: prefix]; |
Jika melihat contoh diatas, maka format penggunaan method secara keseluruhan bisa disimpulkan sebagai berikut:
1 2 | [object method]; [object methodWithInput:input]; |
Untuk function yang mengembalikan sebuah nilai, formatnya sama:
1 2 | output = [object methodWithOutput]; output = [object methodWithInputAndOutput:input]; |
Selain pemanggilan function pada sebuah ojbect, kita juga bisa melakukan pemanggilan function pada sebuah class.
Contoh, pemanggilan function string dalam class NSString, yang mengembalikan object NSString:
Contoh, pemanggilan function string dalam class NSString, yang mengembalikan object NSString:
1 | NSString * str = [ NSString string]; |
Ingat, semua variable object dalam Objective-C bertipe pointer sehingga harus ada simbol asterisk(*) disebelah kanan object type, kecuali type “id” karena sudah bertype pointer secara predefined.
Nested Methods
Kita juga bisa menggunakan method/function sebagai parameter dalam function lain, ini disebut nested methods.
Contoh:
Kita juga bisa menggunakan method/function sebagai parameter dalam function lain, ini disebut nested methods.
Contoh:
1 2 | function1 ( function2() ) stringWithFormat ( format()) |
result dari function format() menjadi input/parameter di stringWithFormat().
Di Objective-C, format penulisannya sebagai berikut:
Di Objective-C, format penulisannya sebagai berikut:
1 | [ NSString stringWithFormat:[prefs format]] |
Multiple Arguments
Contoh berikut menggunakan 3 buah argument (string, date dan integer).
Contoh berikut menggunakan 3 buah argument (string, date dan integer).
1 | [ptr setStr: @"A new test..." andDate:[ NSDate date] andInteger:99]; |
Sebelumnya, dideklarasikan sebagai berikut:
1 | -( void ) setStr:( NSString *)str andDate:( NSDate *)date andInteger:( int )x; |
Implementasi dari method setStr() yang menggunakan tiga argument:
1 2 3 4 5 6 7 | -( void ) setStr:( NSString *)strInput andDate:( NSDate *)dateInput andInteger:( int )xInput { [ self setStr:strInput]; [ self setDate:dateInput]; [ self setX:xInput]; } |
Bisa dilihat pada saat metode setStr() didefinisikan, kita menggunakan variable str, date dan x. Tetapi di implementasinya, kita menggunakan variable strInput, dateInput, dan xInput. Ini karena objective-c mengharuskan nama variable lokal (pada method) tidak boleh sama dengan nama variable yang didefinisikan.
Accessors
Semua instance variable secara default adalah private, sehingga anda harus menggunakan accessors untuk mendapatkan/mengeset nilai pada variable instance tersebut.
Semua instance variable secara default adalah private, sehingga anda harus menggunakan accessors untuk mendapatkan/mengeset nilai pada variable instance tersebut.
setter:
1 | [photo setCaption: @"Day at the Beach" ]; |
getter:
1 | output = [photo caption]; |
Catatan penting:
– Dimanapun anda melihat code didalam “square brackets”, berarti anda mengirim sebuah message pada object atau class.
– Dimanapun anda melihat code didalam “square brackets”, berarti anda mengirim sebuah message pada object atau class.
0 komentar:
Post a Comment