Создает ли объект NSObject в MainMenu.xib одноэлементный объект?

Допустим, у меня есть NSObject AppController:NSObject. Используя IB, я перетаскиваю элемент управления NSObject в MainMenu.xib и указываю класс на AppController. Поскольку MainMenu.xib загружается один раз, а объекты внутри MainMenu.xib находятся в памяти на весь срок службы приложения, делает ли он объект AppController одиночным?

Затем я могу перетащить IBOutlet в AppDelegate для доступа к этому одноэлементному объекту. Это похоже на быстрый способ. Это хорошая практика или обескураживать?

Стандартный метод, который я предполагал, состоит в том, чтобы добавить статический AppController *sharedInstance внутри класса и использовать +(AppController *)sharedAppController для доступа.

1 ответ

Решение

Нет, это не одиночка, потому что ничто не мешает вам создать в коде другой экземпляр того же класса.

Это просто удобный способ создать один экземпляр.

и объекты внутри MainMenu.xib находятся в памяти на всю жизнь приложения

Это неправда. Если никто не хранит эти объекты (или не имеет строгой ссылки на них в GC), они будут освобождены. Это правда. Смотрите комментарий Питера Хоси ниже.

Другие вопросы по тегам