【发布时间】:2019-07-16 11:27:52
【问题描述】:
我在 Xamarin 应用程序中遇到了一个奇怪而令人不安的问题。 我下面的一段代码位于与 Xamarin.Android 和 Xamarin.iOS 应用程序共享的项目库中。
在 Android 应用上,一切顺利,代码产生了准确的预期行为。
但由于奇怪的原因,它在 iOS 应用上有所不同。
dbData.Status 的值始终为 null。
奇怪的是,当我对 dbData 对象执行“QuickWatch”时,Status 属性的值不为空且设置正确。
namespace MyApp.Services
{
public class MyPersistedObject : RealmObject
{
public static MyPersistedObject GetDbData()
{
var dbData = Ctx.Db.All<MyPersistedObject>().FirstOrDefault();
if (dbData == null)
{
dbData = new MyPersistedObject();
Ctx.Db.Write(() => Ctx.Db.Add(dbData));
}
return dbData;
}
public static void SetLocationEnabled(bool isEnabled = true)
{
var dbData = GetDbData();
if (isEnabled && dbData.Status == "disabled_status")
{
Ctx.Db.Write(() => dbData.Status = "enabled_status");
}
else if (!isEnabled && dbData.Status == "enabled_status")
{
Ctx.Db.Write(() => dbData.Status = "disabled_status");
}
Ctx.Db.Write(() => dbData.Enabled = isEnabled);
}
public string Status { get; set; }
}
}
我做错了吗? 有人有想法吗?
【问题讨论】:
标签: c# xamarin xamarin.ios realm