- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- (id) init
{
self = [super init];
if (self)
{
// выкинул лишний код
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:nil object:nil];
}
return self;
}
- (void)receiveNotification:(NSNotification*)notification
{
if ([[notification name] isEqualToString:UpdateSubscribeState])
{
[self hideProgress];
NSMutableDictionary *dict = [notification object];
if ([dict objectForKey:@"userId"] != nil && [[dict objectForKey:@"userId"] intValue] == 0 && [subscriptionManager getSubscriptionState])
{
[self performSelector:@selector(showAccountView) withObject:nil afterDelay:0.05f];
return;
}
if (isSubscription == [subscriptionManager getSubscriptionState])
{
[self updateSubscriptionView:[notification object]];
return;
}
if ([subscriptionManager getRequestState] == RequestBuy || [subscriptionManager getRequestState] == RequestRestore)
{
[self performSelector:@selector(reloadView) withObject:nil afterDelay:0.05f];
}
else
{
[self updateSubscriptionView:[notification object]];
}
}
else if ([[notification name] isEqualToString:GetError])
{
[self hideProgress];
if ([notification object] != nil)
{
[errorMessages setMessageData:[[notification object] objectForKey:@"title"] text:[[notification object] objectForKey:@"message"] tag:0];
[errorMessages showMessage];
}
}
}
-(void) reloadView
{
[[NSNotificationCenter defaultCenter] postNotificationName:HideSubscribeView object:nil userInfo:nil];
[self performSelector:@selector(redrawView:) withObject:nil afterDelay:0.35f];
}
-(void) redrawView:(id) selector
{
[[NSNotificationCenter defaultCenter] postNotificationName:ShowSubscribeView object:nil userInfo:nil];
}
krypt 25.03.2013 19:08 # 0
QuickNick 26.03.2013 08:29 # 0
krypt 26.03.2013 09:00 # 0
Идём сюда, и смотрим описание
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html
Обращаем внимание на 3й параметр.
Идём в гк и видим в receiveNotification if по [[notification name] (причём в коде я встречал куски и с 5+ if'ами).
Если кто не понял, надо было всего лишь подписываться на конкретные уведомления и для каждого из них создавать свою функцию. А сейчас в неё сыпятся тонны сообщений из всей системы. И такого счастья в проекте наверняка навалом. Такую хрень даже ко мне в проект (в котором на любимый аффрар не участвовал) притащили. А всё почему? А потому что в PureMVC можно подписываться только на всё сразу.
QuickNick 26.03.2013 09:05 # 0
QuickNick 26.03.2013 09:09 # 0
Эти нотификейшены - прекрасный способ прострелить себе ногу. Делегаты/наблюдатели, объявленные через протоколы, рулят.
krypt 26.03.2013 09:14 # 0
QuickNick 26.03.2013 11:14 # 0
krypt 26.03.2013 11:28 # 0
QuickNick 26.03.2013 15:19 # 0
Но пробиваем подъем до 5.0.
krypt 26.03.2013 15:36 # 0
QuickNick 27.03.2013 12:11 # 0
krypt 26.03.2013 09:17 # +1
guest 22.10.2013 05:36 # 0