我刚刚发现领域有 250 个对象的限制,有什么办法可以超过这个限制吗

这是来自 stetho 的图像,用于检查我的数据库
我成功地将预定义的领域数据库添加到我的应用程序并获取数据
copyBundledRealmFile(this.getResources().openRawResource(R.raw.test),
"test");
RealmConfiguration config1 = new RealmConfiguration.Builder(this)
.name("test")
.schemaVersion(1)
.migration(new Migration())
.build();
realm = Realm.getInstance(config1);
realm.close();
private String copyBundledRealmFile(InputStream inputStream, String outFileName) {
try {
File file = new File(this.getFilesDir(), outFileName);
FileOutputStream outputStream = new FileOutputStream(file);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, bytesRead);
}
outputStream.close();
return file.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用时如何获取领域实例的问题
realm = Realm.getDefaultInstance();
Run Code Online (Sandbox Code Playgroud)
给我空数据如何在应用程序中获取实例
嗨,我在 onCreate() 上创建了一个 Realm 接下来我想class CheckerThread extends AsyncTask<Void, String, Boolean>在 doInBackground中公开存储一个日期,但我有一个
java.lang.IllegalStateException:来自不正确线程的领域访问。Realm 对象只能在创建它们的线程上访问。
onCreate 我有这个:
realm = RealmController.with(this).getRealm();
Run Code Online (Sandbox Code Playgroud)
接下来在 AsynTask 中,我下载了一个数据,我想保存它,我想在 doInBackground 中执行此操作,但是当我执行此操作时,我有:
Caused by: java.lang.IllegalStateException: Realm access from incorrect thread. Realm instance can only be closed on the thread it was created.
Run Code Online (Sandbox Code Playgroud)
我在 doInBackground 上这样做,但它没有帮助:
try {
realm = RealmController.with(getApplication()).getRealm();
RealmController.with(getApplication()).save(data);
}
finally {
realm.close();
}
Run Code Online (Sandbox Code Playgroud)
一个领域控制器;
public class RealmController {
private static RealmController instance;
private final Realm realm;
public RealmController(Application application) {
realm = Realm.getDefaultInstance();
} …Run Code Online (Sandbox Code Playgroud) 使用 Xcode-8.2.1、Swift-3.0.2、RealmSwift-2.2.0、iOS-Simulator-10:
尝试使用 Realm-Object 编写视图模型时,我无法在另一个线程中创建 returnArray。问题是对先前创建的领域对象的访问失败(很可能是由于后台线程访问??)。
任何人都可以告诉我以下代码有什么问题(见下文):重要提示:在“getEntries-completionHandler”之前调用了“createDataEntries()-method”(可以通过正确的 SimPholders realmobject-entry 看到) )!因此“类别”设置为“爱”(见代码)
import Foundation
import RealmSwift
class MVVMCBalancesModel: BalancesModel
{
fileprivate var entries = [BalancesDataEntry]()
let realm = try! Realm()
init() {
self.createDataEntries()
}
fileprivate func createDataEntries() {
let myBalance = BalancesDataEntry()
myBalance.index = 0
myBalance.category = "Love" // !!!!!!! Here the category is filled
try! self.realm.write {
self.realm.deleteAll()
self.realm.add(myBalance)
}
}
func getEntries(_ completionHandler: @escaping (_ entries: [BalancesDataEntry]) -> Void)
{
// Simulate Aysnchronous data access
DispatchQueue.global().async {
var returnArray: …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用 Realm 作为数据库的项目(稍后会介绍)。我刚刚发现了键值编码,我想用它来将 TSV 表转换为对象属性(使用表中的列标题作为键)。现在它看起来像这样:
let mirror = Mirror(reflecting: newSong)
for property in mirror.children {
if let index = headers.index(of: property.label!) {
newSong.setValue(headers[index], forKey: property.label!)
} else {
propertiesWithoutHeaders.append(property.label!)
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有镜像的情况下迭代属性?我真的可以发誓,我在 Realm 文档(或者甚至在 Apple 的 KVC 文档中)中读到过,您可以做类似的事情for property in Song.properties或for property in Song.self.properties实现同样的事情。
除了效率更高一点之外,我想这样做的主要原因是因为在同一个地方我认为我读过这篇文章,我认为他们说迭代(或 KVC?)仅适用于字符串、整数、布尔值和日期,因此它会自动跳过作为对象的属性(因为您无法以相同的方式设置它们)。上面的代码实际上是我的代码的简化,在实际版本中,我目前正在跳过这样的对象:
let propertiesToSkip = ["title", "artist", "genre"]
for property in mirror.children where !propertiesToSkip.contains(property.label!) {
...
Run Code Online (Sandbox Code Playgroud)
我想象过这.properties件事吗?或者,有没有办法以这种方式进行迭代,自动跳过对象/类而不必像我上面那样命名它们?
谢谢 :)
我想要一个我想在其中执行搜索的项目列表。我希望以区分大小写的顺序根据查询过滤项目。例如,如果用户搜索牛奶,订单应该是牛奶牛奶黄油牛奶黄油牛奶下面是我当前的查询,但由于我添加了 Case.Insesitive,它根据表中项目的位置给我任何随机顺序。
mRealm.where(Product.class).contains("productTags.name", tag,Case.INSENSITIVE).findAll();
Run Code Online (Sandbox Code Playgroud) 我有一个名为visitDetails的表,我查询如下,
realm
.objects("visitDetails")
.filtered("visitDate='"+new Date(response.date)+"' AND chemistId='"+response.chemist_id+"'");
Run Code Online (Sandbox Code Playgroud)
我之前已经将visitDate保存为日期对象,所以我也按日期对象进行查询。然而,我得到的错误说,
错误:您必须传入日期参数进行比较
但我已经在传递一个日期参数......
新日期( response.date )
,其中 response.date 以毫秒为单位。
我有一个对象,它Object是 Realm 的子类,并且Codable在与 API 交谈时符合JSON 的要求。
如何利用Codable协议制作深度副本(包括子对象)?
我是 React Native 的新手,并试图将 Realm 集成为客户端数据库。我有 2 个模式:
export const CAR_SCHEMA = {
name: 'Car',
properties: {
color: 'string',
model: 'string',
}
};
export const PERSONS_SCHEMA = {
name: 'Person',
primaryKey: 'id',
properties: {
id: 'int',
firstName: 'string',
lastName: 'string'
cars: 'Cars[]'
}
};
Run Code Online (Sandbox Code Playgroud)
我的问题基本上是指如何从 Car.model='Honda' 的“人”中删除“汽车”?我找不到任何关于从对象的嵌套数组中删除元素的文档。
我有一个 TableVC,它有类别,当您点击一个类别时,它会将您带到其中的项目。但是当我这样做时,当应用程序崩溃时,我会得到以下多个错误分组:
1.
初始化 newrealm 时出错,错误域=io.realm 代码=1“提供的架构版本 0 小于上次设置的版本 1。” UserInfo={NSLocalizedDescription=提供的架构版本 0 小于上次设置的版本 1。,错误代码=1}
2.
2018-08-01 12:56:06.152225-0400 Todoey[35380:4690261] Interface Builder 文件中的未知类 SwipeTableViewCell。
3.
无法将“UITableViewCell”(0x1096e3580)类型的值转换为“SwipeCellKit.SwipeTableViewCell”(0x106d231d0)。
4.
2018-08-01 12:56:06.153831-0400 Todoey[35380:4690261] 无法将“UITableViewCell”(0x1096e3580)类型的值转换为“SwipeCellKit.SwipeTableView6d”(0x100261)。
这是我得到一个 -Thread 1: 信号 SIGABRT-
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! SwipeTableViewCell
cell.delegate = self
return cell
}
Run Code Online (Sandbox Code Playgroud)
请帮忙
realm ×10
android ×4
swift ×4
ios ×2
react-native ×2
asynchronous ×1
codable ×1
date ×1
java ×1
javascript ×1
stetho ×1
uitableview ×1