Sakelar untuk “behavior” tertentu di Xcode? Environment Variable

Muhammad Muizzsuddin
2 min readJan 20, 2018

--

DuckDuckGo Search

Mungkin saat kita sedang membangun aplikasi, kita perlu untuk melakukan semacam situasi yang memerlukan kondisi tertentu. Katakan bahwa kita ingin agar sebuah salah satu diantara dua kode ini berjalan.

Kucing().makanRoti() FYI, kucingku memang sukanya makan roti dibanding ikan.

Kucing().makanSayurDaunKetela() Ups, dan itu tidak perlu aku ingkari, kucingku akan melahap semua sayur daun ketela. Bahkan jika hanya rebusan daun ketela dengan bumbu penyedap instan.

Nah, kita ingin agar kedua kelakukan itu dijalankan saat kondisi tertentu tanpa harus memasukan ‘state’ ke dalam kode yang diobserve untuk mengerjakan logika penentuan behavior mana yang kudu dilakukan oleh kucing.

I mean, kita ngga perlu nulis var kucingSukanyaMakanRoti: Bool didalam kode karena kita akan menggunakan Envirotment Variable.

Untuk menciptakan envirotment variable, CMD + < atau Product > Scheme > Edit Scheme di Xcode dan masuk ke tab Argument

Di seksi envirotment variable, kita masukkan variable Kucing Super dengan value 1. Sekarang kembali ke kode.

Dimanapun kalian butuh behavior tersebut, misal di App Delegate maka kita akan mengecek ProcessInfo.processInfo.environment yang mengembalikan nilai Dictionary [String: String]

Lakukan pengecekan seperti ini:

let dict = ProcessInfo.processInfo.environment
if let kucingSuper = dict["Kucing Super"] {
if kucingSuper == "1" { Kucing().sukaMakanDaunKetela()
} else {
Kucing().makanRoti()
}
}

Yups sekarang kucing kita punya kelakukan yang sungguh aneh!

Dimana aku mengunakan cara ini? Pertama kalinya, saat setiap beberapa kali build aku harus mengubah persistent store core data. Aku harus mereset semua datanya. Tiap kali harus melakukan hal itu, tinggal aktifkan “Reset Core Data” : “YES”

Happy coding, always praying!

--

--

No responses yet