Совместное использование переменной между всеми экземплярами одного класса - PullRequest
0 голосов
/ 14 января 2011

Эй, я создаю систему загрузки изображений с помощью своих ячеек таблицы, и мне нужно, чтобы каждая ячейка разделяла один и тот же экземпляр моего класса imageloader.Извините, если это вопрос о нуби, но возможно ли это заархивировать?Так что я имею в виду, что если у меня есть переменная int в другом экземпляре того же класса, значение переменной int одинаково в обоих классах.

Заранее спасибо!

1 Ответ

2 голосов
/ 14 января 2011

Для «единственного экземпляра для всего» вам необходим синглтон:

+(SomeClass *)sharedInstance {
  static SomeClass *instance = nil;
  if (instance == nil) {
    instance = [[self alloc] init];
  }
  return instance;
}

Затем, где вам нужен общий экземпляр, просто выполните:

SomeClass *obj = [SomeClass sharedInstance];

Статическая переменнаяв основном то, что заставляет его работать, в сочетании с тестом «is nil», поскольку статические переменные инициализируются только один раз.

Кстати, я думаю, из-за того, что UITableViewCell s используются (то есть копируются), выможет уже иметь то, что вам нужно, без какой-либо дальнейшей работы, такой как создание синглтона.Просто предоставьте правильную логику мелкого копирования в copyWithZone:.

...