Extensions: Index out of range'e önemek için bir yöntem
Collection tipleri oldukça sık olarak kullanmaktayız. Bunlar nelerdi;
- Array
- Set
- Dictionary'dir
Peki en çok kullandığımız yer ise TableView
veya CollectionView
'lerdir. Yazı başlığında yer alan Index out of range
hata ile de mutlaka debug yaparken karşılaşmışsınızdır. Bunu hatanın farklı bir index ile dizi içerisinde olmayan bir değeri getirmeye çalışmasından kaynaklanmaktadır. Uygulamanın crash vermesine neden olacaktır. Bunu önlemek için ise aşağıdaki extension kodunu kullanarak uygulamanın crash vermesini önleyebilirsiniz.
extension Collection {
subscript (safe index: Index) -> Element? {
return indices.contains(index) ? self[index] : nil
}
}
Kullanmak için ise,
print(names[safe: 0])
//or
if let thirdValue = array[safe: 2] {
print(thirdValue)
}