2016-04-20 2 views
1

Gemäß den Dokumenten; https://realm.io/docs/objc/latest/api/Classes/RLMRealm.html Die Methode - (void)addOrUpdateObject:(nonnull RLMObject *)object ist verfügbar über Obj-CIst die Realm-Methode addOrUpdateObject() von Swift aufrufbar?

Die Swift-Dokumentation; https://realm.io/docs/swift/latest/api/Classes/Realm.html erwähnt diese Methode nicht. Edit: Es tut, habe ich zuerst nicht bemerkt.

In meiner Swift App, wenn ich versuche, und rufen Sie diese Methode self.realm!.addOrUpdateObject(model) dann bekomme ich einen Compiler-Fehler Value of type 'Realm' has no member 'addOrUpdateObject'

Doch ich andere Orte Online zu sehen, zum Beispiel How to properly map JSON properties to model properties in Realm.create wo Leute es offensichtlich von Swift benutzen.

Ich benutze Realm über cocoapods - pod 'RealmSwift' - das bringt 2 Pods runter; Realm und RealmSwift. Ich kann diese Methode in RLMRealm.mm sehen. Ich versuchte, #import <Realm/Realm.h> zu meinem Bridging-Header hinzuzufügen, aber das hat nicht funktioniert.

Wie rufe ich diese Methode von Swift?

+0

Können Sie sehen, 'RLMObject's von Swift? – nhgrif

+0

Ich kann, ja. Problem jetzt gelöst, danke. – Brynjar

Antwort

1

Dies ist in Swift und ist defined as:

public func add(object: Object, update: Bool = false) 

So das gleiche Verhalten wie die Obj-C Realm Methode zu bekommen, würden Sie es nennen:

self.realm!.add(model, update: true) 
+0

Ja, ich hatte nicht bemerkt, dass in der verknüpften Frage, die ich gab, sie 'RLMRealm.defaultRealm() verwenden. AddOrUpdateObject' das ist ein RLMRealm, kein Realm ... – Brynjar

+0

'Realm? .add' ... – nhgrif

+0

Ich habe nur die versuchte Verwendung von OP kopiert. Sollte Optionals auf diese Weise tatsächlich verwenden. –

Verwandte Themen