27448


Realmを使用してみようと思いまして、以下のように記述した際

[code]

    if token != nil {
        realm.removeNotifications(token)
    
[/code]

の箇所で

`Value of type 'Realm' has no member 'removeNotifications'`と言われます。

どのような事が考えられますでしょうか。

[code]

    var token: NotificationToken!
    
    @IBAction func startButtonDidTap(sender: AnyObject) {
        let realm = try! Realm()
        if isUpdating == true {
            // Stop
            isUpdating = false
            locationManager.stopUpdatingLocation()
            startButton.setTitle("Start", forState: UIControlState.Normal)
            // Remove a previously registered notification
            if token != nil {
                realm.removeNotifications(token)  //Value of type 'Realm' has no member 'removeNotifications'
            }
        }
        else {
            // Start
            isUpdating = true
            locationManager.startUpdatingLocation()
            startButton.setTitle("Stop", forState: UIControlState.Normal)
            // Add a notification handler for changes
            token = realm.addNotificationBlock {
                [weak self] notification, realm in
                self?.tableView.reloadData()
            }
        }
    }
    
[/code]


CC BY-SA 3.0
2016-07-08T00:02:25.030
27444
2016-07-08T03:06:28.980
2016-07-08T03:03:18.820
5519
14780
question
swift realm
RealmでValue of type 'Realm' has no member 'removeNotifications'のエラーが出ます


Realmには`removeNotifications()`というメソッドはありません。昔は`removeNotification()`というメソッド（複数形のsがない）がありましたが、それもバージョン0.99で削除されました。

Realmの通知を解除するには、`token.stop()`メソッドを使ってください。

[code]

    if let token = token {
        token.stop()
    }
    
[/code]

上記のように書きます。

参考： <https://realm.io/jp/news/realm-objc-swift-0.99.0/>


CC BY-SA 3.0
2016-07-08T03:06:28.980
27448
2016-07-08T03:06:28.980
5519
27444
answer