1

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

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

谢谢

4

2 回答 2

4

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

在这个问题中,您有一个使用 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];
}
于 2014-08-16T23:15:28.877 回答
0

如果你使用 addNotificationBlock,addNotificationBlock: 的命名似乎和最新的 Swift 命名约定不太一致所以请你使用这段代码

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

    }
于 2019-07-15T11:49:58.270 回答