Frage

War es hilfreich?

Lösung

In Klasse A: Veröffentlichen Sie die Benachrichtigung

[[NSNotificationCenter defaultCenter] postNotificationName:@"DataUpdated"
                                                        object:self];

In Klasse B: Registrieren Sie sich zuerst für die Benachrichtigung und schreiben Sie eine Methode, um sie zu verarbeiten.
Sie geben den entsprechenden Selektor der Methode an.

// view did load
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleUpdatedData:)
                                             name:@"DataUpdated"
                                           object:nil];

-(void)handleUpdatedData:(NSNotification *)notification {
    NSLog(@"recieved");
    [self.tableView reloadData];
}

Andere Tipps

Ok, ich füge Vince's Antwort ein bisschen mehr Informationen hinzu

In Klasse A: Veröffentlichen Sie die Benachrichtigung

[[NSNotificationCenter defaultCenter] postNotificationName:@"DataUpdated"
                                                   object:arrayOfPurchasedObjects];

In Klasse B: Registrieren Sie sich zuerst für die Benachrichtigung und schreiben Sie eine Methode, um sie zu verarbeiten.
Sie geben den entsprechenden Selektor der Methode an. Make sure your class B is allocated before you post the notification otherwie notification will not work.

- (void) viewDidLoad {
// view did load
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleUpdatedData:)
                                             name:@"DataUpdated"
                                           object:nil];
}

-(void)handleUpdatedData:(NSNotification *)notification {
    NSLog(@"recieved");
    NSArray *purchased = [notification object];
    [classBTableDataSourceArray addObjectsFromArray:purchased];
    [self.tableView reloadData];
}

- (void) dealloc {
    // view did load
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                 name:@"DataUpdated"
                                               object:nil];
    [super dealloc];
 }

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top