2011-01-14 2 views
0

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

Заранее благодарен!

ответ

2

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

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

Тогда везде, где требуется общий экземпляр, просто сделать:

SomeClass *obj = [SomeClass sharedInstance]; 

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

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

+0

Спасибо! Во время моего программирования я никогда не нуждался в таком поведении :) –

+0

Шаблон Singleton - это путь - см. Также: http://stackoverflow.com/questions/145154/what-does-your-objective-c-singleton- выглядит как – petert