вот правильный шаблон для создания Singleton в target-c: (Я буду использовать пример объекта User .. взят из кода, который я открыл передо мной). Кроме того, обратите внимание, что между классами Singleton и методами Static Class есть различие, как обсуждено здесь.
в файле .h объявите статический метод, который возвращает экземпляр вашего класса.
+(User *) currentUser;
в файле .m создайте статическую переменную, которая содержит ваш экземпляр
static User * _user;
затем в своем классе .m создайте свой "публичный" статический аксессор GET, который возвращает или создает и возвращает вашу статическую переменную
+ (User *) currentUser
{
if (!_user)
{
_user =[[User alloc]init];
// ... init the singleton user properties and what not
// ...
}
return _user;
}
затем, когда вы хотите вызвать класс Singleton, просто убедитесь, что User.h импортирован, и вызовите [[User currentUser] someMethodorProperty]
;
наслаждаться