iOS5: rectForRowAtIndexPath yöntemi için kural dışı durum nasıl engellenir?

İstisna:

geçersiz dizin yolunda rect isteği

Kod:

CGRect rect = [tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];

Fix:

if ([tableView numberOfRowsInSection:0] <= i) {
    return;
}

Belki daha iyi bir yolu vardır

5

1 cevap

Genellikle rectForRowAtIndexPath, geçersiz indexPath'i belge durumu olarak ele alabilir, ancak iOS 7.1'de geçersiz indexPath'ı düzgün işlemez. Bu yüzden sıfırdan geçmek çökmelere neden olur ve hata mesajını alır:

geçersiz dizin yolunda rect isteği (   {uzunluk = 2, yol = 0 - 0})

Bir kelimede, elle rectForRowAtIndexPath için bir sıfır denetimi gereklidir.

3
katma