Objective-C Синглтон экземпляр как статичный? - PullRequest
2 голосов
/ 06 февраля 2009

В документации Apple для их примера синглтона, и я понимаю, что существует несколько способов обшить кошку - но почему они беспокоятся о том, чтобы экземпляр был зарегистрирован как статический?

Взять из: http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/chapter_3_section_10.html

Я имею в виду:

статический MyGizmoClass * sharedGizmoManager = nil;

Ответы [ 2 ]

9 голосов
/ 06 февраля 2009

Я считаю, что переменная не может быть доступна извне файла, для которого она определена. В противном случае он был бы глобально доступен.

Это означает, что клиент должен использовать - (id) sharedObject для доступа к синглтону.

2 голосов
/ 07 февраля 2009

Ответ выше верен. Объявление переменной синглтона как статической означает, что она существует только в локальной области файла, в которой она находится, и это именно то, что вам нужно. Частично это связано с тем, что эта модель синглтона использует ленивую загрузку для создания синглтона при его первом использовании, а отчасти это связано с тем, что вам не нужен внешний доступ к указателю, который может потерять синглтон в памяти или позволить другому экземпляру быть сотворенным, что делает все это бессмысленным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...