Pengantar iOS
- Objective-C adalah superset dari C. Artinya perintah Objective-C relatif saama tapi lebih banyak dari pada perintah Bahasa C.
- Inheritance tunggal, class hanya mewarisi dari satu Superclass
- Dapat menggunakan protokol (protocol) & delegasi (delegation) atau kategori (categories) untuk memperluas class.
- Dinamis saat runtime
- Menggunakan getter dan setter untuk mengakses memori instances object di dalam sebuah class.
File-File Objective-C
.h
|
File Header. File Header berisi class, type, function, dan deklarasi contant.
|
.m
|
File Sumber. ini adalah ekstensi yang biasa digunakan untuk source file dan dapat berisi objective-C dan kode C.
|
.mm
|
File Sumber. Sebuah source file yang berisi kode C++ dengan kode tambahan untuk objective-C dan kode C. Ekstensi ini digunakan jika benar-benar merujuk class pada C++ atau fitur dari kode objectice-C
|
Koding Praktek
- MVC: Model-View-Controller
- Pendekatan Modular
- Ketika object dibutuhkan, maka akan di load ke dalam memori
- Setiap layar informasi adalah terpisah “View Controller yang dapat digunakan kembali
- Setiap ViewController mempunyai sebuah class (file .h & .m)
- Object antarmuka seperti View dalam Storyboard atau file Xib
- Polymorphism oleh subclass Views dan Objects.
Polymorphism “mempunyai banyak bentuk” yang juga merupakan salah satu sifat class yang memungkinkan sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda.
Model-View-Controller
- Pola Desain MVC
- Model - Data atau object yang dimanipulasi atau ditampilkan.
- View - Aspek visual antarmuka pengguna.
- Controller - Aspek input antarmuka pengguna. Controller menerima input pengguna (mouse, keyboard, network events, dll) dan melakukan operasi model atau melihat pembaharuan dalam menanggapi masukan.
- Pendekatan ini memungkinkan Anda memisahkan tanggung jawab kode dengan tepat.
Dasar OOP
Encapsulation:
Menyimpan implementasi dari object dari antarmuka. Private, Protected, Public.
Polymorphism:
Kemampuan object yang berbeda untuk merespon, masing-masing dengan caranya sendiri, untuk pesan identik. misalnya. Circle & Eclipse.
Inheritance:
Untuk inheritance property yang lain. Objective-C memiliki inheritance tunggal, hanya class yang mewarisi dari satu superclass.
Variabel Dasar
Type
|
Keterangan
|
General
|
id
|
Object
|
NSObject
|
Number
|
int float, double, NSNumber
|
Character atau String
|
varchar, chat, NSString @”string”
|
Array atau Multi-dimensional array
|
NSArray, NSMutableArray, NSDictionary, MSMutableDictionary.
NSArray adalah suatu berguna yang disediakan untuk menyimpan data.
NSMutableArray digunakan untuk menunjukkan tipe array yang berbeda.Perbedaannya adalah bahwa Anda tidak bisa menambah dan menghapus isi dari NSArray setelah anda membuatnya, tapi anda bisa menambah ataupun menghapus isi dari NSMutableArray kapanpun anda mau.
Untuk membuat array, dengan menggunakan: @[ item1, item2, item3 ]
setiap isi dari array adalah string. Untuk membuat string di Objective-C. anda harus menambahkan simbol @ didepannya. Jadi jika app anda crash ketika anda menggunakan string, periksa kembali apakah anda lupa menggunakan simbol @!
Perbedaan tipe array: NSArray ddan NSMutableArray sejauh ini dua-duanya sudah melaksanaan pekerjaan yang sama, Gunakan NSMutableArray jika ingin mengubah/mengupdate array tersebut, seperti namanya, mutable array dapat diubah. Dan normal NSArray adalah statis dan anda tidak tidak bisa menambah item yang baru atau menghapus suatu item dari array dengan mudah.
|
Boolean | BOOL |
Data | NSData |
Istilah
Istilah
|
Keterangan
|
Self
|
Sebuah nama variabel yang dapat digunakan dalam berbagai cara, bahkan diberi nilai baru. Di dalam instance method, self refers mengacu pada instance, tapi dalam sebuah class method, self refers mengacu pada class object.
Self adalah special keyword yang berarti “class yang sekarang” - mirip this pada bahasa pemrograman yang lain.
Ada bisa mengakses properti dari suatu class dengan menggunakan titik, dan kemudian mengetikan nama propertinya, mis: self.myQuotes memungkinkan anda mengakses properti myQuotes yang ada buat sebelumnya.
|
Super
|
Sebuah flag untuk compiler yang berpengaruh dalam proses mencari metode untuk mengerjakan; ini digunakan sebagai penerima pesan.
|
IBOutlet
|
Sebuah variabel instance khusus sebagai referensi dari object lain. IBOutlet adalah menghubung dari code program ke komponen pada user interface. Atau properti yang kelas digunakan untuk terhubung ke element interface pengguna.
|
IBAction
|
Sebuah metode khusus yang dipicu oleh object user interface. IBAction adalah metode yang merespon event (misalnya, sentuhan tombol).
|
#import | |
@Class | Deklarasi forward. Deklarasi ini hanya menggunakan nama class sebagai jenis dan tidak bergantung pada setiap detail dari kelas antarmuka (metode dan variabel instance) direktif @class memberikan peringatan pada compiler apa yang diharapkan. Namun, dimana antarmuka untuk kelas sebenarnya digunakan (contoh dibuat, pesan yang dikirim) antarmuka class harus diimport. |
Atribut @Property
Istilah
|
Keterangan
|
atomic
|
Atomic adalah default behavior. Jika suatu object dinyatakan sebagai atomic maka akan menjadi thread-safe. Berarti thread-safe, pada suatu kondisi dimana hanya satu thread dari instance tertentu yang berasal dari class itu sajadapat memiliki kontrol atas object tersebut.
Jika thread ini melakukan getter method maka thread lain tidak dapat melakukan setter method pada object tersebut. dan ini akan menjadi lambat.
Contoh:
@property NSString *name; //by default atomic`
@property (atomic)NSString *name; // explicitly declared atomic`
|
nonatomic | Atribut nonatomic dapat meningkatkan performance dengan mengorbankan thread-safety. Non atomic adalah thread tidak aman. Anda dapat menggunakan Atribut properti nonatomic untuk menemukan bahwa synthesized accessors hanya mengatur atau mengembalikan nilai secara langsung, dengan tidak menjamin apa yang terjadi jika nilai yang sama diakses secara bersamaan dari threads yang berbeda. Untuk alasan ini, lebih cepat mengakses properti nonatomic jika dibandikan dengan atomic. Contoh: @property (nonatomic)NSString *name; |
Retain | Retain diperlukan bila atribut berupa pointer ke object. Metode setter akan meningkatkan retain count object, sehingga akan menempati memori pada autorelease pool. Contoh: @property (retain)NSString *name; |
Copy | Jika menggunakan copy, anda tidak dapat menggunakan retain. Penggunaan copy instance dari class akan berisi copy itu sendiri. Bahkan jika mutable string diatur dan kemudian berubah, misalnya menangkap apa saja nilai itu pada waktu yang ditetapkan. Tidak ada metode setter dan getter |
Strong | Strong adalah pengganti untuk retain. Atribut Strong mengindikasikan bahwa pointer ke variabel akan tetap di memory selama object yang memakai pointer masih tetap ada. Strong: ini menspesifikasikan bahwa runtime harus seara otomatis menjaga referensi strong pada object. atau dengan kata lain, kita menginginkan agar ARC runtime tetap mengkeep object di dalam memori selama ada referensi, dan men-deallocate karena tidak ada referensi lagi. Contoh: @property (nonatomic, strong) AVPlayer *player; |
@properties | Adalah satu metode yang digunakan untuk memberi nilai (setter) ke sebuah variabel atau mengambil nilai (getter) dari sebuah variabel dalam sebuah objek.
Pendeklarasian Propery
Property dideklarasikan dalam interface menggunakan @propery
pada implementation property ini harus di synthesize menggunakan @synthesize
Syntax:
@interface nameInstance: NSObject {
tipeData namaVariabel;
}
@property tipeData namaVariabel;
@end
@implementation namaInterface
@synthesize namaVariabel;
@end;
Pengambilan Nilai dari Variabel (Getter)
Syntax:
[namaObjek namaVariabel]
atau
namaObjek.namaVariabel
Contoh:
Buatlah sebuah proyek dengan nama Properties dan isilah file main.m dengan kode berikut ini:
#import |
@properties | Adalah satu metode yang digunakan untuk memberi nilai (setter) ke sebuah variabel atau mengambil nilai (getter) dari sebuah variabel dalam sebuah objek. |
Assign | ini berarti property di set secara langsung, tanpa ada keterlibatan dari memory management. ini yang biasa kita set untuk tipe data primitive (non-object) seperti float. |
Objective-C NSLog Output
Format
Spesifikasi
|
Keterangan
|
%@
|
General | Boolean | NSDate | String.
NSLog(@ "String value is: %@", _myName);
NSLog(@"the current date is %@",today);
|
@f, %g
|
Float | Double.
NSLog(@"double value is: %f", _double); |
@i
|
Integer | Long
NSLog(@"The value of integer num is %i", num); NSLog(@"long value is: %i", _long); |
No comments:
Post a Comment