Выполнить метод в основном потоке из другого потока

Мой класс модели должен получить некоторые данные из Интернета. Поэтому я решил запустить его в другом потоке, чтобы пользовательский интерфейс не зависал. Поэтому, когда объекту требуются некоторые данные, он сначала запрашивает модель, используя метод такого типа:

- (void)giveMeSomeData:(id)object withLabel:(id)label {
objectAsking= object;
theLabel= label;
NSThread* thread= [[NSThread alloc] initWithTarget:self selector:@selector(getTheDataFromInternet) object:nil];
[thread start];
}

- (void)getTheDataFromInternet {
//getting data...

theData= [dataFromInternet retain]; //this is the data the object asked for
[self returnObjectToAsker];
}

- (void)returnObjectToAsker {
[objectAsking receiveData:theData withLabel:theLabel];
}

Поскольку я все еще новичок, можете ли вы сказать мне, хороший ли это шаблон?

Спасибо!

6
задан 3 February 2011 в 21:56
поделиться