В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Я выполнил Ваши шаги, воссоздал проект и столкнулся с той же проблемой. В основном Вы почти там. Существует 2 вещи, отсутствующие (когда-то зафиксировал, это работает):
необходимо соединиться tableView
из TableTestTableViewController
к UITableView
, Вы имеете на экране. Как я сказал, прежде, потому что это не IBOutlet
, можно переопределить tableView
свойство и сделать его и IBOutlet
:
@interface TableTestTableViewController : UITableViewController {
UITableView *tableView;
}
@property (nonatomic, retain) IBOutlet UITableView *tableView;
Следующая вещь состоит в том, чтобы добавить ссылку на TableTestTableViewController
и сохранить ее в TableTestViewController
. Иначе Ваш TableTestTableViewController
может быть выпущен (после того, как, загружая перо ничем держащимся за него.) и именно поэтому Вы видите ошибочные результаты, катастрофические отказы или ничто показ. Чтобы сделать, которые добавляют:
@interface TableTestViewController : UIViewController {
TableTestTableViewController *tableViewController;
}
@property (nonatomic, retain) IBOutlet TableTestTableViewController *tableViewController;
и подключение это в Интерфейсном Разработчике к TableTestTableViewController
экземпляр.
С вышеупомянутым это хорошо работало на моей машине.
Также я думаю, что было бы хорошо указать мотивацию позади всего этого (вместо того, чтобы просто использовать UITableViewController
с его собственным UITableView
). В моем случае это должно было использовать другие представления что просто UITableView
на том же, экранном из содержания. Таким образом, я могу добавить другой UILabels
или UIImages
под [1 117] и показать UITableView
под ними или выше их.
Я просто провел много часов, вытягивая мои волосы, пытаясь выяснить, почему UITableView
не обнаружится когда, когда у меня был встроенный в отдельное перо вместо в основном пере. Я наконец нашел Ваше обсуждение выше и понял, что это было, потому что мой UITableViewController
не сохранялся! По-видимому, делегат и свойства источника данных UITableView
не отмечены, "сохраняют" и таким образом, мое перо загружалось, но контроллер становился брошенным... И из-за чудес цели-c я добрался никакой сообщения об ошибках вообще от этого... Я все еще не понимаю, почему это не отказало. Я знаю, что видел "сообщение, отправленное в выпущенный xxx" прежде..., почему это не было дающий мне один из тех?!?
я думаю, что большинство разработчиков предположило бы, что структура, которую они создают в интерфейсном разработчике, считалась бы в некотором большем контексте (Перо) и не подвергающаяся выпуску. Я предполагаю, что знаю, почему они делают это.. так, чтобы iPhone мог отбросить и перезагрузить части пера на низкой памяти. Но человек, которого было трудно выяснить.
кто-то может сказать мне, где я должен был читать о том поведении в документах?
Также - о присоединении представление. Во-первых, если Вы опозорите один от разработчика UI, то Вы будете видеть, что они поднимают трубку свойство представления (который является IBOutlet
) к табличному представлению. Не необходимо представить эти tableView
, который, кажется, установлен внутренне. На самом деле это, даже кажется, не необходимо установить представление, если Вы не хотите viewDidLoad
уведомление. Я только что повредил соединение представления между моим uitableview
и uitableviewcontroller
(только делегат и набор источника данных), и это, по-видимому, хорошо работает.
Да по некоторым причинам (вмешайтесь, если кто-либо знает, почему...) tableView
свойство эти UITableViewController
не представлено как IBOutlet
даже при том, что это - общественная собственность. Таким образом, при использовании Интерфейсного Разработчика Вы не видите что свойство для соединения с другим UITableView
. Таким образом в Вашем подклассе, можно создать tableView
свойство, отмеченное как IBOutlet
и подключение это.
это все кажется hacky и обходным решением мне, но это, кажется, единственный способ отделиться UITableViewController's
UITableView
и поместить его где-то в другом месте в иерархию UI. Я столкнулся с той же проблемой, когда я попробовал к режиму конструктора, где существуют вещи кроме UITableView
, и это было способом, которым я решил его... Действительно ли это - правильный подход???