Ios “如何解决例外情况”;当域为';时,无法开始管理具有域的对象;“它已经被另一个领域管理了”;
我在Xamarin项目中使用Realm Mobile数据库。我在使用realm.Add(obj,update)语句时遇到了一个问题。它抛出一个异常“当一个领域已经被另一个领域管理时,无法开始管理该领域的对象”。在同一个演示中,我没有在Swift版本上看到什么。我知道realm对象的IsManage何时为true,我将realm中存在的一个对象添加到另一个对象以进行更新,然后抛出该异常,因此我如何使用之前存在的成员更新realm对象Ios “如何解决例外情况”;当域为';时,无法开始管理具有域的对象;“它已经被另一个领域管理了”;,ios,xamarin,realm,Ios,Xamarin,Realm,我在Xamarin项目中使用Realm Mobile数据库。我在使用realm.Add(obj,update)语句时遇到了一个问题。它抛出一个异常“当一个领域已经被另一个领域管理时,无法开始管理该领域的对象”。在同一个演示中,我没有在Swift版本上看到什么。我知道realm对象的IsManage何时为true,我将realm中存在的一个对象添加到另一个对象以进行更新,然后抛出该异常,因此我如何使用之前存在的成员更新realm对象 var objUpdate = new
var objUpdate = new AccountAccessDB()
{
Id = this.Id, //Id is PrimaryKey
User = this.User // this object existed
};
objUpdate.something.Add(new Object()) // this is that I want to update.
realm.Write(() => {
realm.Add(objUpdate, true);
});
谢谢 看起来您正在打开不同的领域,然后尝试将一个对象从一个领域添加到另一个领域 请记住,领域的配置是唯一的,因此,如果在打开领域时传递了配置,则在尝试打开同一领域时必须使用相同的配置
// First time you open realm
var realm = Realm.GetInstance("my.realm");
...
// Somewhere else in your code
var realm = Realm.GetInstance(); // <== This is not the same realm!
var myRealm = Realm.GetInstance("my.realm"); // <== This is the same realm
//第一次打开领域时
var realm=realm.GetInstance(“my.realm”);
...
//代码中的其他地方
var realm=realm.GetInstance();// 看起来您正在打开不同的领域,然后尝试将一个对象从一个领域添加到另一个领域
请记住,领域的配置是唯一的,因此,如果在打开领域时传递了配置,则在尝试打开同一领域时必须使用相同的配置
// First time you open realm
var realm = Realm.GetInstance("my.realm");
...
// Somewhere else in your code
var realm = Realm.GetInstance(); // <== This is not the same realm!
var myRealm = Realm.GetInstance("my.realm"); // <== This is the same realm
//第一次打开领域时
var realm=realm.GetInstance(“my.realm”);
...
//代码中的其他地方
var realm=realm.GetInstance();// 我最近遇到了同样的问题,并设法找到了问题所在
在我的例子中,我将大量非托管对象导入到领域。
其中一些对象有一个指向自定义用户对象的属性,这是我在对象的构造函数中天真地指定的
当然,这意味着我试图导入的非托管对象的属性指向托管对象(也是在不同的实例中创建的)。我最近遇到了相同的问题,并设法找到了问题
在我的例子中,我将大量非托管对象导入到领域。
其中一些对象有一个指向自定义用户对象的属性,这是我在对象的构造函数中天真地指定的
当然,这意味着我试图导入的非托管对象的属性指向托管对象(也是在不同的实例中创建的)。感谢您的支持,但我只在app的所有部分使用Realm.GetInstance()。只要您通过相同的配置,GetInstance应该为您提供相同的realmYes(或无)您将获得相同的领域。感谢您的支持,但我只在应用程序的所有部分使用realm.GetInstance()。GetInstance应始终为您提供相同的领域,只要您通过相同的配置(或无配置),您将获得相同的领域。您现在找到解决方案了吗?您现在找到解决方案了吗?