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 *)strInputandDate:(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:
Tidak ada komentar:
Posting Komentar