В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.
Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.
Оператор
==
проверяет, являются ли две строки точно одним и тем же объектом.Метод
blockquote>.equals()
проверяет, имеют ли две строки одно и то же значение.
Вероятно, проблема заключается в удаленном характере ваших вызовов.
Недавно я сделал всплеск запросов на использование потокового времени у потока, и это было невероятно быстрее. В контексте запроса веб-приложения это было почти неизмеримо. Если кто-то войдет в жесткий цикл, это будет стоить вам, но обычно вы хотите, чтобы это было в начале операции и снова в конце.
ваш контроллер представления будет автоматически искать файл пера с именем (в вашем случае) AboutViewController.xib
. Если он находит этот файл, он загружает его содержимое в ваш контроллер представления для вас.
В общем, все, что вам нужно сделать, это инициализировать ваш контроллер представления и убедиться, что он имеет то же имя, что и связанный файл пера.
] Если вы хотите загрузить файл пера с другим именем в контроллер представления, вы можете явно вызвать initWithNibName: bundle:
с именем любого понравившегося файла пера.
Если стандартный init ( с одноименным файлом пера) не работает для вас, есть несколько вещей, которые вы можете проверить.
UIViewController
подкласса также вызывает [super init]
UIViewController
На экране «О программе» вы, вероятно, просто хотите показать представление, а затем закрыть его. Поэтому вместо того, чтобы использовать полностью новый контроллер представления, вы можете просто закрыть текущее представление.
Предполагая, что у вас есть 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