Я пытаюсь наблюдать за свойством моего AppDelegate, чтобы обновить представление таблицы. Это немного сложно, поэтому вот часть моего кода.
Я хочу обновлять содержимое UITableView всякий раз, когда обновляется массив. Я чувствую, что есть более эффективный способ сделать это, но не могу понять. Я прочитал онлайн-документацию Apple и немного запутался. Заранее спасибо!! :)
//Game.h
@interface Game: NSObject
@property (strong,nonatomic) NSMutableArray *myArray;
@end
//AppDelegate.h
#import "Game.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong,nonatomic) Game *myGame;
@end
//ViewController.m
#import "AppDelegate.h"
@implementation ViewController
//...
- (void)viewDidLoad
{
[(AppDelegate*)[[UIApplication sharedApplication] delegate] addObserver:self forKeyPath:@"myGame" options:0 context:nil];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
//THIS METHOD NEVER GETS CALLED
NSLog(@"change observed");
[self.tableView reloadData];
}
- (void)dealloc
{
[(AppDelegate*)[[UIApplication sharedApplication] delegate] removeObserver:self forKeyPath:@"myGame"];
}
//...
@end
myGame.myArray
. - person rmaddy   schedule 15.07.2013