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