ios - 非泛型类型不能与类型参数一起使用 (Realm Xamarin)
问题描述
我决定为 xamarin ios 使用 Realm 数据库
我需要从 API 获得响应并从中写入数据库数据。
这是一种从 API 获取数据的方法
public async Task<string> Logining(string email, string password)
{
string result;
var client = new RestClient("http://api.xplorpal.com");
var request = new RestRequest("/login", Method.POST);
request.AddParameter("email", email);
request.AddParameter("password", password);
IRestResponse response = await client.ExecuteTaskAsync(request);
var content = response.Content;
if (content.Length > 100)
{
try
{
var usr = JsonConvert.DeserializeObject<List<User>>(content);
var realm = Realm.GetInstance();
realm.Write(() =>
{
var mydog = realm.CreateObject<UserModel>();
});
}
catch
{
}
result = "Authorized";
}
else
{
result = "Auth problem" + content;
}
return result;
}
在这一行,我想将数据写入领域数据库
var realm = Realm.GetInstance();
realm.Write(() =>
{
var mydog = realm.CreateObject<UserModel>();
});
但我得到错误
非泛型类型不能与类型参数(字符串、对象)一起使用
但我都喜欢在文档中
我该如何解决?
解决方案
您正在引用一篇旧的 Realm 博客文章,并且自那时起(2016 年)API 已更改。
CreateObject
您可以创建 RealmObject 子类,分配其属性,然后将其添加到您的 Realm 实例中,而不是直接使用:
var realm = Realm.GetInstance();
var mydog = new UserModel
{
// Set your properties...
};
realm.Write(() => realm.Add(mydog));
我建议直接参考 .Net Realm 文档:
较新版本的CreateObject
方法返回一个“动态”对象,并根据您提供的主键在 Realm 实例中创建一个“占位符”:
var dynObj = realm.CreateObject(typeof(UserModel).FullName, "somePIKey");
推荐阅读
- python - 从数据框中的列中获取纬度和经度
- unit-testing - 测试 QWidget 接收鼠标输入
- assembly - 反复调用后,Scanf 似乎无法正常工作(英特尔 x86_64 nasm 程序集)
- android-studio - android studio 4.2 beta 1 中对 jetpack compose 的支持是什么
- ios - 为什么从 SceneDelegate 中的 performActionFor 调用时 viewController.navigationController 返回 nil?
- jqgrid - jqgrid按降序排序编号不起作用:3后显示20
- python - 继承满足条件的最近行的值
- wordpress - 如何停止编码站点上地图坐标的 URL
- skyve - 什么是 Skyve?我听说过,很好奇
- sql - 某些字符之前和之后的红移正则表达式