Я начинаю с разработок для iOS здесь и интегрирую Interface Builder в свои проекты.
У меня возник бы вопрос, который я сейчас испытываю, но я не уверен, что на первом месте, если я
Первый случай
Я создал все свои UITableViewController
внутри IB, а затем изменил класс на свой пользовательский CurrencyTableViewController.поэтому для добавления этого внутри моего window.rootViewController
в MainWindow_iPhone.xib
я просто создаю переменную прямо из AppDelegate
и вызываю экземпляр, созданный в другом файле .xib
.Это работает довольно хорошо, но одна из моих проблем здесь связана с управлением памятью.
//Use the instance initiated by IB
CurrencyTableViewController *currencyTableViewController = [[[NSBundle mainBundle] loadNibNamed:@"CurrencyTableView" owner:nil options:nil] objectAtIndex:0];
Таким образом, вопрос заключается в следующем: при использовании описанного выше метода для загрузки экземпляров, созданных в IB, они автоматически освобождаются после этого?Или мне нужно объявить это где-нибудь еще?
Второй случай
Этот второй случай был альтернативой, пытавшейся подумать о том, как освободить объект, следовательно, создание экземпляра вместо использованияодин экземпляр уже создан.Но, к сожалению, кажется, выдает ошибку, которая говорит, что я не присоединяю представление к контроллеру.И это заставило меня думать, что UITableViewController
, даже будучи подклассом UIViewController
, не поддерживает метод initWithNibName
... по крайней мере, это не заявлено в документации.
//Fails with: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "CurrencyTableView" nib but the view outlet was not set.'*** Call stack at first throw:
CurrencyTableViewController *currencyTableViewController = [[CurrencyTableViewController alloc] initWithNibName:@"CurrencyTableView" bundle:nil];
Итак, можно ли подтвердить, действительно ли это не поддерживается, и единственный возможный способ создать объект и присоединить его к файлу nib
, если этот элемент UIViewController
?если нет, то как может работать приведенный ниже код?
Заранее благодарим за поддержку и время.