Video: Cara merekam layar dan suara di Iphone 2024
Rekaman Aktif adalah pola sederhana, di mana kelas objek model dalam memori diperluas dengan metode yang menangani kegigihan kelas. Berikut adalah contoh yang menggunakan tabel bernama PERSONTABLE untuk mempertahankan objek kelas Person dalam basis data relasional sebagai data store. Ini adalah file antarmuka kelas Person:
@interface Person: NSObject {// Model attributes @private NSString * Name; @private NSString * SSNo;} - (id) init; - (id) initWithOIDNameAndSSNo: (NSString *) OID: (NSString *) aName: (NSString *) aSSNo; - (NSString *) getName; - (NSString *) getSSNo; - (void) setName: (NSString *) aName; - (void) setSsno: (NSString *) aSSNo; - (void) setAsRetired; // Operasi lain, jika ada -d
Hanya metode domain yang ditampilkan di antarmuka ini. Metode tambahan yang dibutuhkan untuk ketekunan didefinisikan dalam protokol Persistable:
typedef enum {BARU, EXISTS, CHANGED, DELETED} STATE; @protocol Persistable // Properties yang dibutuhkan oleh protokol @required @property (copy) NSString * OID; // ID unik di Database @required @property (readonly) NEGARA; + (id) findByOID: (NSString *) OID; - (kosongkan) sisipan; - (void) update; - (void) hapus; - (void) bertahan; -d
Protokol ini menyatakan dua atribut yang dibutuhkan:
-
Atribut OID : Atribut ini menampung ID objek yang akan mengidentifikasi objek secara konsisten dalam penyimpanan data yang persisten.
-
Atribut state : Atribut ini menunjukkan apakah objek
-
baru dibuat dalam memori (negara adalah NEW).
-
Ada dalam database (state is EXISTING).
-
Telah dimodifikasi dalam memori setelah diambil dari toko data (keadaan BERUBAH).
-
ditandai untuk dihapus (negara di-DELETED).
-
Protokol kemudian menyatakan kumpulan metode yang perlu diimplementasikan kelas. Anda menggunakan metode kelas FindByOid untuk membawa objek dari database ke memori. (Metode seperti itu dikenal sebagai metode finder , dan Anda dapat memiliki banyak jenis dari mereka, seperti findByName, findBySSNo, dan seterusnya.) Pseudocode untuk menerapkan metode ini di kelas Person ditunjukkan di sini:
+ (id) findByOID: (NSString *) anOID {Person * kembaliPerson; // pernyataan SQL untuk mengambil objek dari database // Save diambil NAME dan SSNO di variabel lokal aName dan anSSNo … SELECT NAME, SSNO, dari PERSABLEABLE OID =: anOID INTO: aName,: anSSNo; aPerson = [[Person alloc] initWithOIDNameAndSSNo: anOID: anSSNo]; aPerson-> state = EXISTING; return kembaliPerson;}
Logika dari metode ini adalah sebagai berikut:
-
Pernyataan SQL SELECT yang disisipkan mengambil atribut Name dan Social Security dari objek dari database dan menyimpan nilai-nilai ini di variabel lokal aName dan anSSNo.
-
Variabel ini beserta instantiate OID dan menginisialisasi objek kelas Person dan mengembalikannya.
Selanjutnya, Anda melihat penerapan metode lain dari protokol Persistable, di kelas Person. Metode bertahan disebut kapanpun objek perlu disimpan ke database, seperti yang ditunjukkan di sini:
- (void) bertahan {// Periksa keadaan objek // Jika itu adalah objek baru i. e. state = NEW call [self insert] // untuk membuat entri di PERSONTABLE // If state = EXISTS tidak melakukan apa-apa // If state = CHANGED, panggil update untuk mengupdate database // Jika state - DELETED, hapus hapus untuk menghapus informasinya. // dalam database}
Metode bertahan menggunakan variabel keadaan untuk meminta metode yang tepat untuk kegigihan objek.
-
Jika objek baru dibuat, sebuah record dimasukkan ke dalam tabel objek dengan menggunakan metode insert, seperti yang ditunjukkan di sini:
- (void) insert {REPLACE INTO PERSONTABLE (OID, NAME, SSNO) NILAI: OID: Nama: SSNo …}
-
Jika objek diambil dari database dan kemudian dimodifikasi dalam memori, metode update dipanggil.
- (void) update {NILAI SET UPDATE PERSONTABLE NAME =: Nama, SSNO =: SSNo WHERE OID =: OID …}
-
Jika objek diambil dari database dan kemudian ditandai untuk dihapus dalam memori, hapus metode disebut.
- (void) hapus {DELETE FROM PERSONTABLE WHERE OID =: OID; …}
Perhatikan bahwa metode domain dan metode finder harus mengatur keadaan objek dengan tepat. Akibatnya, init menetapkan keadaan objek ke NEW, findByOID menetapkan negara menjadi EXISTING, setAsRetired berpotensi mengatur negara untuk DELETED, setName, dan setSSNo mengatur negara agar diubah (jika negara asal itu ADA), dan sebagainya di.
Metode domain dan metode ketekunan, oleh karena itu, digabungkan ke tingkat tertentu.
Bila Anda menggunakan Rekaman Aktif untuk menyimpan objek dalam basis data relasional, biasanya memetakan objek ke tabel basis data, dengan variabel persisten objek dipetakan ke bidang di tabel itu.
Semua logika pengelolaan siklus hidup dari objek - memutuskan kapan mengambilnya dari database, apakah mengizinkan contoh duplikat di memori yang sesuai dengan objek yang sama dalam database, kapan harus menyimpan, kapan harus menghapus objek secara permanen - adalah tanggung jawab aplikasi
![Cara Menggunakan Rekaman Aktif di Aplikasi iOS - dummies Cara Menggunakan Rekaman Aktif di Aplikasi iOS - dummies](https://i.howtospotfake.org/img/big/id-web-design-development-2018/how-to-use-active-record-in-ios-apps.jpg)