Создает ли объект 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), они будут освобождены. Это правда. Смотрите комментарий Питера Хоси ниже.