2012-02-07 2 views
3

Это вопрос новичков в объекте c: Я хотел бы создать статический класс, доступный на всем моем коду, к которому будет доступен любой объект. Этот класс будет действовать как контейнер нескольких объектов. Может ли кто-нибудь предоставить короткий пример кода, как объявить статические глобальные переменные и методы?Как реализовать глобальный статический класс

ответ

3

Для моего класса Globals у меня есть что-то вроде этого

заголовочных файл выглядит как этот

@interface Globals : NSObject 
{ 

} 
+ (Globals *)instance; 

@end 

и файл .m, как это

импорт "Globals.h"

@implementation Globals 

- (id)init 
{ 
    self = [super init]; 

    if (self) 
    { 

    } 

    return self; 
} 

+ (Globals *)instance 
{ 
    static Globals *instance = nil; 

    @synchronized(self) 
    { 
     if (instance == nil) 
     { 
      instance = [[Globals alloc] init]; 
     } 
    } 

    return instance; 
} 

- (void)dealloc 
{ 
    [super dealloc]; 
} 

@end 

, конечно, это очень простой пример класса Globals

+0

можно добавить статическую переменную? – Sagi

2

вы должны подумать о том, чтобы сделать его как Singleton class, Найдите ниже ссылку, которая поможет вам разобраться в шаблоне Singleton в Objective-C.

A note on Objective-C singletons, Singleton Classes., Using the Singleton Pattern in Objective-C,

И вы также можете использовать шаблон Factory для создания объектов ..

+0

ОК, но как бы выглядел код? – Sagi

+0

@Sagi: Перейдите по ссылке, которую я предоставил. – Jhaliya

0

Создать класс и есть ваше приложение делегат держать экземпляр класса - если вам действительно нужна эта глобальная видимость. Глобальное изменяемое состояние, такое как глобальные переменные и синглтоны, является плохим запахом. Можно придумать превосходное решение.

Смежные вопросы