我最近开始使用Realm,我不确定我的用例是否有效:通常,当从数据库中读取大量数据时,我想将其放入后台队列中,以便异步获取数据并稍后在主线程中使用它。例如,我想根据城市获取几个结果:privatevarresults:[Results?]=[]autoreleasepool{DispatchQueue(label:"background").async{[unownedself]indo{letrealm=tryRealm()foriin1...City.count{self.results.append(realm.objects(SomeObject.self).filter("c
我可以与应用组共享iOSRealm数据库吗?如果是,如何?如果没有,我如何将我的Realm数据库共享给我的其他应用程序? 最佳答案 要在同一iOS应用组中的应用之间共享Realms,您需要为Realm指定一个公共(public)位置:letfileURL=FileManager.default.containerURL(forSecurityApplicationGroupIdentifier:"group.io.realm.app_group")!.appendingPathComponent("default.realm")le
我使用Realm来存储我的模型对象。在我的对象中,我有一个函数可以从它自己的属性值生成NSData。这一代可能会很长,所以我想在一个带处理程序block的线程中生成我的NSData。我的问题是Realm数据访问只能在Realm创建实体(实际上是主线程)上进行。因此,当我在线程中访问我的RealmObject属性时,应用程序崩溃。根据Realm规范,这是正常的。但是,根据Realm限制在线程中生成NSData的最佳解决方案是什么?其实我有两个想法:创建一个特定于Realm的调度队列,并将我所有的Realm访问写入该队列在临时结构(或一组变量)中获取所有需要的属性,并使用此结构/变量在线程
Realmjava有一个函数isValid()来检查realm对象是否被删除/无效。在realmswift中有没有类似的查找功能?更新这些对象时,我经常遇到“Realm对象已被删除或无效”的崩溃。 最佳答案 AnobjectcannolongerbeaccessediftheobjecthasbeendeletedfromthecontainingrealmorifisInvalidatediscalledonthecontainingrealm.这是theDocumentationObject.isInvalidated的。添加o
使用realmswift,是否可以在应用程序从设备上卸载后在设备内存中保留和维护应用程序的Realm数据库文件?非常感谢您的帮助。 最佳答案 遗憾的是没有。这是iOS的限制,而不是Realm的限制。当从设备上卸载iOS应用程序时,所有与其关联的文件(包括任何Realm文件)都会被删除。如果您希望文件数据在应用程序被删除后仍然存在,您需要查看云托管解决方案以保留这些文件的副本。在这种情况下,最简单的很可能是CloudKit. 关于ios-Realmswift:Isitpossibletok
我曾经在Realm数据库中插入远程通知数据。但是,问题是,我用content-available=1发送每个通知,这意味着每次通知进入didReceiveRemoteNotifications时都会工作,并且当用户点击或不点击通知时,静默通知会被保存。所以,如果我的应用程序在后台,那里将插入两次记录。第一个条件是当应用程序在后台收到通知时,didReceiveRemoteNotification调用,因为content-available=1并插入一条记录。所以,第二个条件是如果用户点击通知中心内的通知,该方法didReceiveRemoteNotification再次工作并插入相同的
我想将我的.json文件中的城市(名称、ID、经度、纬度)下载到Realm数据库。我已经创建了名为City的Realm对象,但它因以下错误而崩溃:Terminatingappduetouncaughtexception'RLMException',reason:'Realmaccessedfromincorrectthread'**所以,我只想在我的self.cities([City])数组中获取一个Realm对象。然后把它放在TableView中。我的刷新函数:funcrefresh(sender:AnyObject){varservice=CityService()service.
我正在尝试过滤Realm对象以查找createdAt日期小于一年前的对象:letdatex=NSCalendar.currentCalendar().startOfDayForDate(NSDate()).dateByAddingTimeInterval(-1*365*24*60*60)letlist=RealmDB.objects(TaskList).filter("createdAt我收到以下错误:Expectedobjectoftypedateforproperty'createdAt'onobjectoftype'TaskList',butreceived:'2015-03-1
我有一个整数数组:▿2elements-[0]:123459-[1]:1031020并想根据数组过滤我的对象。.filter("codeIN\(myCodeArray)")但这会导致崩溃。如何正确使用IN运算符? 最佳答案 除了使用Swift的字符串插值,你应该使用NSPredicate的参数替换支持,通过%@:.filter("codeIN%@",myCodeArray)Swift的字符串插值语法("\(someVariable)")将变量的字符串表示形式插入到字符串中。整数数组的字符串表示形式是[123459,1031020],
是否可以创建两个不同的Realm,每个Realm使用不同的数据模型?例如:defaultRealm将使用客户端类作为模型,而myRealm将使用产品类作为模型 最佳答案 从RealmSwiftv0.95.0开始,可以通过objectTypespropertyonRealm.Configuration设置给定Realm存储的类集。.letconfigA=Realm.Configuration(fileURL:realmFileURL,objectTypes:[Dog.self,Owner.self])letrealmA=Realm