草庐IT

ios - 在 Realm 中编辑属性后删除对象引发 RLMException 原因 : 'Index 0 is out of bounds (must be less than 0)'

我正在制作一个简单的应用程序,用户可以在其中使用数据库的swift和realm添加习惯和完成主题一切正常,除了我编辑状态和删除对象时应用程序因RLMException原因而崩溃:“索引0超出范围(必须小于0)”我注意到只有当该项目是tableView中唯一的单元格时才会发生这种情况如果有人能帮我解决这个问题,我将不胜感激,因为我一整天都在为此苦苦挣扎习惯对象是:classHabit:Object{dynamicvarid=0dynamicvarname=""dynamicvarstate=""convenienceinit(name:String){self.init()self.id

ios - Realm + Swift 使用 JSON 字符串更新对象

我正在使用alamofire从服务器获取响应JSON,然后使用ObjectMapper将字符串映射到Realm对象。Therealmobjectis:classSolutionVideo:Object,Mappable{dynamicvarsvID=0dynamicvarsolutionTitle=""dynamicvarvideoName=""dynamicvarrelatedInfo=""dynamicvarshortDesc=""overridestaticfuncprimaryKey()->String?{return"svID"}requiredconvenienceinit

ios - Realm - 对象映射和持久化 AnyObject 类型

我正在构建一个两个模式相同的应用程序(DB和LocalDB)。这是一个伟大的原因,只需要一行代码,Realm就可以解析我从服务器获取的JSON。ifletJSON=response.result.value{letrealm=try!Realm()do{tryrealm.write{realm.create(EMApplication.self,value:JSON,update:true)}}catch{print("Somethingwentwrong!")}}唯一的问题是Realm要求专门为我设置的每个属性提供一个类型,但我至少有一个属性我想用作AnyObject类型:class

json - 如何使用 Realm Swift 和 ObjectMapper 来持久化数组?

当我尝试保存来自JSON字符串的数组时出现错误。我尝试使用RLMArray但没有成功。我收到的错误是:'RLMException',reason:'Property'page'isoftype'RLMArray'whichisnotasupportedRLMArrayobjecttype.我的模型类:publicclassProject:Object,Mappable{dynamicvarid=0dynamicvaruser:User!dynamicvarpage:RLMArray!dynamicvarerror_message:String!=""dynamicvarstatus:S

ios - Realm :防止对对象进行不必要的更新

我有一个设置,我从服务器获取一些json数据来填充表格。有可能是数据变了,所以我每次都把数据全部取过来。我将该数据映射到一个Realm对象并将其保存到数据库中。主要ID用于防止重复。我使用Realm通知来保持TableView/CollectionView与数据源同步。当服务器请求完成时,对象会更新或添加到数据库中,并且View会自动重新加载。问题是所有单元格都会重新加载,因为数据库中的所有对象都会更新,即使它们实际上没有任何不同,因为我只是盲目地使用realm.add(object,update:真)。是否有一种好方法可以防止更新实际上并未更改的对象,从而避免不必要地重新加载单元格?

swift - Realm 如何使用 List<T> 和 RealmOptional<T> 处理动态调度?

Realm依靠动态调度来访问ObjectiveC运行时以实现某些KVC机制。模型属性应标记为dynamic用于启用Realm使用的KVC的关键字对象以用精确值填充它们。所以你可以像这样定义模型:classCar:Object{dynamicvarcolor=""dynamicvarage=0}在某种程度上,您可以像这样设置属性:varcar=Car()car["color"]="white"car["age"]=20这适用于所有基本类型,如Int或String但不适用于通用类和结构,因为它们不能在ObjectiveC中表示。Realm使用其中两种类型:ListRealmOptional

objective-c - 设置使用 Cedar 进行测试的项目,Objective-C Realm 并正在测试 swift Realm 模型

我希望这个问题被Realm团队的人看到并回答我有一个项目使用Cedar来编写BDD风格的测试。我有一个包含ObjectiveC和Swift文件的混合项目。其中一些swift文件用于自定义Realm模型。我使用CocoaPods将Realm安装到我的项目中。目前我看到的推荐设置如下:在Podfile中使用Realm/Headers作为测试目标,仅使用Realm作为主要目标-这解决了+[RLMObjectBaseignoredProperties]:unrecognizedselectorsenttoclass错误。我的应用程序构建并运行,但现在我得到这个RLMObjectsubclass

ios - 使用 xCode 8 和 Swift 2.3 的 Realm 失败

我最近更新到xCode8,我选择继续使用Swift2.3我正在使用Cocoapods来集成Realm,它在升级到xCode8之前就可以正常工作。我在Realm的GitHub上四处搜索并尝试了一些解决方案,但没有成功。在我的podfile中,我有以下Realm行pod'Realm',git:'https://github.com/realm/realm-cocoa.git',branch:'master',submodules:truepod'RealmSwift',git:'https://github.com/realm/realm-cocoa.git',branch:'master

swift - 删除 Realm 中的对象并保持 TableView 同步

我想了解我在这里做错了什么。有两个基本的ViewController:一个tableView和一个detailView。如果数据被修改,我正在订阅通知以重新加载tableView。我可以从detailViewController修改记录,并且更改会得到反射(reflect)。甚至从tableView中删除一条记录,它也有效。但我还想在detailView上添加一个删除按钮,但随后viewController和Realm不同步并崩溃。'RLMException',原因:'对象已被删除或失效。'。下次我加载该应用程序时,记录将被删除,因此它可以正常工作。如何删除不同viewControll

ios - Realm 快速线程安全变量

我是Realm的新手,我想知道将对象的主键存储在ViewController中并将对象作为存储属性存储是否是个好主意。classVC:ViewController{publicvarid:Int!privatevarcustomer:Customer{get{returnDBO.loadCustomer(for:id)}}}classDBO{publicstaticfuncloadCustomer(forid:Int)->Customer{letrealm=try!Realm()returnrealm.object(ofType:Customer.self,forPrimaryKey: