Sore ini kita akan mempelajari tentang Encodable pada swift 4. Encodable dapat digunakan untuk menampilkan data dari bentul model kedalam bentuk json. Pada percobaan kali ini kita akan memanfaatkan Encodable pada proses pembuatan Session di swift 4.
Pertama kita buat struct terlebih dahulu :
struct AlarmArray : Encodable {
var nama, waktu : String?
var isActive : Bool
}
Kemudian kita buat struct lain, dimana struct baru ini selain menambahkan variabel string, kita juga memasukkan struct AlarmArray menjadi variabelnya :
struct AlarmData : Ecodable {
var identifier : String?
var alarmarray : AlarmArray?
}
Setelah kita selesai membuat kelas modelnya, kemudian kita buat Sessionnya. proses perubahan model ke bentuk json menggunakan Encodable sebagai berikut :
let alarm = AlarmData()
let jsonEncoder = JSONEncoder()
do{
let dataAlarm = try jsonEncoder.encode(alarm)
let jsonString = String(data: dataAlarm, encoding: .utf8)
print("--------- convert model to json -------->", jsonString)
}catch{
print("Error")
}
let jsonEncoder = JSONEncoder()
do{
let dataAlarm = try jsonEncoder.encode(alarm)
let jsonString = String(data: dataAlarm, encoding: .utf8)
print("--------- convert model to json -------->", jsonString)
}catch{
print("Error")
}
jika fungsi diatas kita gunakan untuk menyimpan data session, maka kita tinggal masukkan data diatas dengan key sesuai keinginan anda :
import SwiftKeychainWrapper
import SwiftJSON
func createSession(alarm : AlarmData, alarmKey: String){
let alarm = AlarmData()
let jsonEncoder = JSONEncoder()
do{
let dataAlarm = try jsonEncoder.encode(alarm)
let jsonString = String(data: dataAlarm, encoding: .utf8)
print("--------- convert model to json -------->", jsonString)
KeychainWrapper.standard.set(jsonString!, forKey: AlarmKey)
}catch{
print("Error")
}
}
import SwiftJSON
func createSession(alarm : AlarmData, alarmKey: String){
let alarm = AlarmData()
let jsonEncoder = JSONEncoder()
do{
let dataAlarm = try jsonEncoder.encode(alarm)
let jsonString = String(data: dataAlarm, encoding: .utf8)
print("--------- convert model to json -------->", jsonString)
KeychainWrapper.standard.set(jsonString!, forKey: AlarmKey)
}catch{
print("Error")
}
}
untuk memanggil session yang telah tersimpan, kita membuat function untuk mengambil data session berdasarkan key session tersebut :
import SwiftKeychainWrapper
import SwiftJSON
func getSession(alarmKey: String){
let alarmdata = KeychainWrapper.standard.string(forKey: alarmKey)
let datajsonalarm = JSON.init(parseJSON: alarmdata ?? "")
return datajsonalarm
}
import SwiftJSON
func getSession(alarmKey: String){
let alarmdata = KeychainWrapper.standard.string(forKey: alarmKey)
let datajsonalarm = JSON.init(parseJSON: alarmdata ?? "")
return datajsonalarm
}
Sedangkan untuk Mendestroy session tinggal meremove KeychainWrapper berdasarkan parameter yang diinginkan. berikut function untuk mendestroy session :
import SwiftKeychainWrapper
import SwiftJSON
func destroySession(alarmKey: String){
KeychainWrapper.standard.remove(forKey: alarmKey)
}
import SwiftJSON
func destroySession(alarmKey: String){
KeychainWrapper.standard.remove(forKey: alarmKey)
}
Encodable pada pembuatan Session di Swift 4 (IOS)
Reviewed by sdiik
on
January 30, 2020
Rating:
No comments: