私には3つの方法があります:
- (void)viewDidAppear:(BOOL)animated
{
[self updateViews];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"itemQuantityChanged" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:[NSString stringWithFormat:@"Item %@ deleted", itemUUID] object:nil];
}
- (void)viewDidDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void) receiveNotification: (NSNotification *)notification
{
if ([[notification name] isEqualToString:@"itemQuantityChanged"])
[self updateViews];
if ([[notification name] isEqualToString:[NSString stringWithFormat:@"Item %@ deleted", itemUUID]])
NSLog(@"FAIL!");
}
主なアイデアは、このクラスでは 2 つの異なる通知を受け取る必要があり、それらを受け取った場合は異なるアクションを実行する必要があるということです。実現は大丈夫ですか?このコードを単純化することは可能だと思います。removeObserver
正しくするには?ARCは使いません。