Koduję różne procedury i staram się jak najlepiej, aby zachować go w porządku i refaktoryzacji.Prawidłowa struktura do sprawdzenia pod kątem błędów za pomocą NSError
Metody Tworzę zaczynają wyglądać podobnie do tego kodu:
-(IBAction)buttonPress:(id)sender {
// Create Document Shopping List with this document
[self doSomething:&error];
if(error) {
[NSApp presentError:&error];
return nil;
}
[self doSomethingElse:&error];
if(error) {
[NSApp presentError:&error];
return nil;
}
[self doYetSomethingElse:&error];
if(error) {
[NSApp presentError:&error];
return nil;
}
}
Kocham NSError, ale to wydaje się być strasznie niezdarny sposób obsługi wszystkich moich błędów.
Kilka myśli ja miałem o alternatywnych sposobów:
a) sprawdzanie błędów może być wbudowany w metodach doSomething, doSomethingElse etc, ale wtedy nie byłby w stanie wyjść z metody Naciśnij przycisk bez sprawdzanie wartości zwracanej, co doprowadziłoby mnie do podobnej struktury.
b) Mogę ustawić NSError jako kluczową wartość obserwowaną, ale coś w tym jest głęboko błędne. Jestem bardzo świadomy możliwości nadużyć z KVO, więc staram się robić wszystko bez niego, gdzie tylko to możliwe.
Na pewno brakuje tu czegoś naprawdę podstawowego? Czy istnieje wzór, który może mi pomóc? A może ta struktura jest w porządku?
Jestem absolutnie oszołomiony niesamowitą odpowiedzią, jaką otrzymałem w ciągu ostatnich 10 minut! Dziękuję bardzo za odpowiedzi. Bardzo, bardzo pomocny. –