Подтвердить что ты не робот

Разница между объявлением статической переменной внутри и вне контекста реализации в Objective C?

Возможный дубликат:
Где мне нужно объявлять статические переменные?

Я видел код вроде

@implementation ClassA

static NSString *str = nil;

.....

@end

а также

static NSString *str = nil;

@implementation ClassA

.....

@end

Какая разница, если статический var объявлен в контексте @implmentation и вне

4b9b3361

Ответ 1

Нет разницы между

@implementation ClassA

static NSString *str = nil;

.....

@end

и

static NSString *str = nil;

@implementation ClassA

.....

@end

Они работают одинаково...

Статические переменные помогают классу объект больше функциональности, чем просто то из "factory", производящего экземпляры; он может полный и универсальный объект в своем Права собственности. Объект класса можно использовать для координации экземпляров создает, распределяет экземпляры из списки уже созданных объектов или управлять другими процессами, необходимыми для приложение. В случае, когда вы нужен только один объект определенного класса, вы можете поместить все объекты состояние в статические переменные и использовать только методы класса. Это экономит шаг выделения и инициализации экземпляр.