отправить сообщение нескольким объектам одновременно (target-c) - PullRequest
1 голос
/ 01 июля 2010

(или установить несколько объектов с одним значением). Есть ли способ отправить нескольким объектам одно сообщение в одной строке.верите, что C?) Вы можете установить объекты Mutliple:

someThing, otherThing = 1 , 0

Ответы [ 4 ]

3 голосов
/ 01 июля 2010

Короче говоря, нет, ни Objective-C, ни C не поддерживают эту функцию.В качестве крайней меры вы можете использовать -[NSArray makeObjectsPerformSelector:] и -[NSArray makeObjectsPerformSelector:withObject:], например

[[NSArray arrayWithObjects:someObject, otherObject, nil] makeObjectsPerformSelector:@selector(reset)];
2 голосов
/ 01 июля 2010

Я бы, вероятно, использовал NSNotification.

Вам необходимо подписать эти объекты на ваше уведомление и отправить его. Оба этих объекта получат уведомление.

Например, если ваши объекты являются ViewControllers, вы можете добавить этот бит в их метод viewDidLoad.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reset:) name:@"reset" object:nil];

Сброс метода: должен иметь вид:

- (void)reset:(NSNotification *)theNotification;

Затем, когда вы хотите отправить свое сообщение всем этим объектам, вы публикуете уведомление.

NSDictionary *messages = [NSDictionary dictionaryWithObjectsAndKeys:@"hello", @"object 1", @"bye", @"object2", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"reset" object:message];

Таким образом, каждый объект получит сообщения словаря и выполнит сброс метода.

Чтобы использовать метод в качестве словаря, вам нужно получить объект из уведомления.

NSDictionary *receivedMessage = [theNotification object];

Кроме того, не забудьте удалить эти объекты из центра уведомлений. Я использую этот бит в методе dealloc:

[[NSNotificationCenter defaultCenter] removeObserver:self];
1 голос
/ 01 марта 2011

В NSArray есть пара методов, которые могут помочь с этим:

  • (аннулируются) makeObjectsPerformSelector: (SEL) aSelector

и

  • (void) makeObjectsPerformSelector: (SEL) aSelector withObject: (id) anObject
0 голосов
/ 01 июля 2010

Не совсем. Это одна из особенностей Lua (НЕ LUA) и Matlab.

Вы могли бы рассмотреть возможность использования NSNotificationCenter и таким образом отправить сообщение нескольким объектам, но это больше работы.

...