Verilerimi iOS Uygulamam ile Android uygulaması arasında senkronize etmeye çalışıyorum. Android uygulaması Realm'den iyi bir şekilde okuyabilir, ancak Swift programım mücadele ediyor ve hata mesajı çok bilgilendirici değil. Ne anlama geldiğini hiçbir fikriRealm nesne sunucusu: başarısız oldu. Sol.optional == right.optional (Android ve iOS arasında veri senkronizasyonu)
2016-11-08 08:53:43.919 iOSRealm[2629:65667] Sync: Connection[1]: Session[1]: Bad changeset received: Assertion failed: left().nullable == right().nullable
var ya nasıl düzeltilir:
Bu hata mesajı alıyorum. Bu benim Diyar Nesne sunucusuyla kendimi kimlik doğrulaması nasıl:
private func synchronouslyLogInUser() throws {
SyncUser.authenticateWithCredential(Credential.usernamePassword(username, password: password, actions:.UseExistingAccount), authServerURL: authURL) { (user, error) in
print("sent login request")
if let user = user {
print("user was not nil")
self.setDefaultRealmConfiguration(user)
}
if let error = error where error.code == SyncError.HTTPStatusCodeError.rawValue && (error.userInfo["statusCode"] as? Int) == 400 {
print("invalid user and pass")
} else {
print(error)
}
}
}
private func setDefaultRealmConfiguration(user: SyncUser) {
Realm.Configuration.defaultConfiguration = Realm.Configuration(syncConfiguration: (user, realmURL), objectTypes: [Weather.self, Wind.self])
Realm.Configuration.defaultConfiguration.deleteRealmIfMigrationNeeded = true
realm = try! Realm()
}
ben giriş denemesinin başarılı olduğunu bilmeleri çıktı konsola basılmış görüyoruz. Eşleşmeyen bir veritabanıyla ilgili bir sorun olduğunu düşünmüyorum, çünkü deleteRealmIfMigrationNeeded
bayrağını true
olarak ayarlıyorum.
Bu hata mesajı ne anlama geliyor ve nasıl düzeltebilirim?
Uygun Nesne Bölge Sunucusu günlüklerini şu adreste bulabilirsiniz: http://pastebin.com/raw/J9mU4H0u - site dışı bağlantıdan özür dilerim, ancak uzun bir günlük dosyası. aşağıdaki gibi
Benim Swift modelleri
şunlardır:class Weather : Object {
dynamic var id = 0
dynamic var date = ""
dynamic var forecast = ""
dynamic var humidity = ""
dynamic var wind: Wind!
override class func primaryKey() -> String? {
return "id"
}
}
class Wind: Object {
dynamic var direction = ""
dynamic var speed = ""
}
Android Modeller: önceden
public class Weather extends RealmObject {
@PrimaryKey
public int id;
public String date;
public String forecast;
public String humidity;
public Wind wind;
}
public class Wind extends RealmObject {
public String direction;
public String speed;
}
teşekkürler!
Güzel bulundu! Bunu, Realm Mobil Platformu ile çapraz uyumluluk konusundaki iç tartışmalarımızda vurguladım ve bunu gelecekte daha açık hale getirmeye çalışacağız. Paylaşım için teşekkürler! :) – TiM