Как загрузить XIB?

В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.

Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.

Оператор == проверяет, являются ли две строки точно одним и тем же объектом.

Метод .equals() проверяет, имеют ли две строки одно и то же значение.

11
задан AngryHacker 19 September 2009 в 09:08
поделиться

3 ответа

Вероятно, проблема заключается в удаленном характере ваших вызовов.

Недавно я сделал всплеск запросов на использование потокового времени у потока, и это было невероятно быстрее. В контексте запроса веб-приложения это было почти неизмеримо. Если кто-то войдет в жесткий цикл, это будет стоить вам, но обычно вы хотите, чтобы это было в начале операции и снова в конце.

ваш контроллер представления будет автоматически искать файл пера с именем (в вашем случае) AboutViewController.xib . Если он находит этот файл, он загружает его содержимое в ваш контроллер представления для вас.

В общем, все, что вам нужно сделать, это инициализировать ваш контроллер представления и убедиться, что он имеет то же имя, что и связанный файл пера.

] Если вы хотите загрузить файл пера с другим именем в контроллер представления, вы можете явно вызвать initWithNibName: bundle: с именем любого понравившегося файла пера.

Если стандартный init ( с одноименным файлом пера) не работает для вас, есть несколько вещей, которые вы можете проверить.

  • написание имени класса такое же, как написание (и регистр) файла пера
  • файл пера включен в проект, а не просто сидеть в том же каталоге
  • , метод init вашего UIViewController подкласса также вызывает [super init]
  • , вы вызываете метод инициализации подкласса UIViewController
  • вы действительно делаете вид своего контроллера представления видимым
30
ответ дан 3 December 2019 в 01:24
поделиться

На экране «О программе» вы, вероятно, просто хотите показать представление, а затем закрыть его. Поэтому вместо того, чтобы использовать полностью новый контроллер представления, вы можете просто закрыть текущее представление.

Предполагая, что у вас есть ivar

UIView *aboutUsView;

с соответствующим свойством.

В вашем контроллере представления выполните:

[[NSBundle mainBundle] loadNibNamed:@"AboutUsView" owner:self options:nil]; // Retains top level items
[self.view addSubview:aboutUsView];  // Retains the view
[aboutUsView release];

Чтобы удалить представление, скажем, в действии, связанном с кнопкой в ​​представлении, выполните:

[aboutUsView removeFromSuperview], aboutUsView = nil;  // Releases the view
11
ответ дан 3 December 2019 в 01:24
поделиться

NSBundle loadNibNamed:

0
ответ дан 3 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: