Вопрос по ios, objective-c, xcode, cocoa – NSNotification пример userinfo?

5

У меня есть массив объектов, которые позиционируются с использованием CGPoints. В определенное время в моем приложении объект в массиве должен уведомлять другие объекты без массивов о своей позиции. Я понимаю, что NSNotification - лучший путь, но я не могу найти достойного примера «отправителя». и «получатель»; для уведомления, которое оборачивает и разворачивает CGPoint как userinfo. Кто-нибудь может помочь?

Ваш Ответ

2   ответа
1

передаваемый вместе с уведомлением, является просто NSDictionary. Вероятно, самый простой способ передачи CGPoint в userinfo - заключить координаты X и Y в NSNumbers с помощью -numberWithFloat :. Затем вы можете использовать setObject: forKey: в словаре userinfo, используя в качестве ключей, например, Xpos и Ypos.

Вы могли бы, вероятно, обернуть это в хорошую категорию на NSMutableDictionary, с методами как setFloat: forKey или кое-что ...

15

омощью

+ (NSValue *)valueWithCGPoint:(CGPoint)point
- (CGPoint)CGPointValue

NSValues могут храниться в NSDictionary, передаваемом в качестве параметра userinfo.

Например:

NSValue* value = [NSValue valueWithCGPoint:mypoint];
NSDictionary* dict = [NSDictionary dictionaryWithObject:value forKey:@"mypoint"];

И в вашем уведомлении:

NSValue* value = [dict objectForKey:@"mypoint"];
CGPoint newpoint = [value CGPointValue];
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы