Subscript ve Userdefaults birlikte kullanıma örnek
Örneğimize geçmeden önce çok kısa Subscriptlerden bahsetmek gerekirse, swift programlama dilinde class
, struct
veya enum
içerisinde tanımlanan sequence
, lists
, tuples
ve dictionaries
vb. yapılarına erişmek icin kullanılmaktadır. Ayrıca bir collection'ın alt indisinde indeksi sağlayarak değer verme (Set)
ve değeri alma (Get)
işlemlerini de gerçekleştirilebilmektedir; dictionary'lerde ise bir öğeye erişmek için alt element'te bir key değeri ile sağlanır
// Array Example
class course {
private var coursesName = ["Android", "IOS", "Web", "Machine Learning", "AI", "DevOps", "Project Management"]
subscript(index: Int) -> String {
get {
return coursesName[index]
}
set(newVal) {
self.coursesName[index] = newVal
}
}
}
var courses = course()
print(courses[0]) //Android
Peki konu başlında olduğu gibi Subscript'i Userdefaults da nasıl kullanılabiliriz. Aşağıda gösterilmiştir.
// Userdefaults + Subscript
extension UserDefaults {
enum Key: String {
case rememberPasswordOpen
}
subscript(key: Key) -> Bool {
get {
bool(forKey: key.rawValue)
}
set {
set(newValue, forKey: key.rawValue)
}
}
}
UserDefaults.standard.rememberPasswordOpen = true