Aktualizacja aplikacji na urządzeniu z usuniętym plikiem .xib powoduje awarię aplikacji
Mam starszą wersję aplikacji zainstalowanej na urządzeniu. W mojej nowej wersji nie korzystałem już z pliku .xib, ponieważ zmienił się on z czegoś złożonego w tylko widok tabeli i mogę utworzyć jego instancję w kodzie.
Jednak, gdy buduję i uruchamiam na urządzeniu, zawiesza się, ponieważ nadal próbuje załadować kontroler z pliku .xib zawartego w starszej aplikacji i skarży się na brak pary klucz / wartość dla UILabel.
Na przykład:
SomeViewController.h (UITableViewController)
SomeViewController.m
SomeViewController.xib (usunięty w nowej wersji)
SomeViewController *controller = [[SomeViewController alloc] initWithStyle:UITableViewStylePlain];
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self)
{
}
return self;
}
Mimo że nazywam „initWithStyle”, nadal próbuje załadować wcześniej istniejące .xib!
Moje obecne rozwiązanie polega na utworzeniu SomeViewController.xib z pustym UITableView.
Podejrzewam jednak, że gdy użytkownicy zaktualizują aplikację ze sklepu z aplikacjami, nadpisze całą aplikację i nic nie pozostawi.
Czy to prawda? Czy aktualizacje aplikacji zastępują istniejącą aplikację, czy pozostawiają pliki .xib?
Teraz muszę przetestować starszą wersję z każdym innym widokiem, aby upewnić się, że nie ma innych problemów.
Czytanie tekstu autora na temat NIB:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html
Może znalazłem błąd?
Inną opcją jest dla mnie zmiana nazwy klasy na inną, np. SomeController, aby uniknąć automatycznego ładowania skojarzonego pliku .xib.