如何使用realm.addNotificationBlock?

时间:2014-08-16 22:43:15

标签: ios swift realm

我在IOS应用程序中玩swift和realm。

我尝试使用realm.addNotificationBlock重新加载tableView。但我不知道如何实现这一点。有人可以用确切的代码示例帮助我吗?

谢谢

2 个答案:

答案 0 :(得分:4)

您可以检查类引用以实现捕获RLMRealm中的更改的通知处理程序:http://realm.io/docs/cocoa/0.80.0/api/Classes/RLMRealm.html

在这个issue中,你有一个使用addNotificationBlock的测试用例(非主线程)。

我希望这对你有所帮助。


更新

同时查看示例: RealmTableViewExample

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self setupUI];

    // Set realm notification block
    __weak typeof(self) weakSelf = self;
    self.notification = [RLMRealm.defaultRealm addNotificationBlock:^(NSString *note, RLMRealm *realm) {
        [weakSelf reloadData];
    }];
    [self reloadData];
}

- (void)reloadData
{
    self.array = [[DemoObject allObjects] arraySortedByProperty:@"date" ascending:YES];
    [self.tableView reloadData];
}

答案 1 :(得分:0)

如果您使用的是addNotificationBlock,则addNotificationBlock的命名似乎与最新的Swift命名约定不太一致,因此请使用此代码

notificationToken = realm.observe { (notification, realm) in

    }