草庐IT

REALM_PARAM

全部标签

ios - realm.write 和 realm.beginWrite+realm.commitWrite 有什么区别?

在Realm中有两种写事务的方式,它们有什么区别?1.try!realm.write{...}2.realm.beginWrite()...try!realm.commitWrite() 最佳答案 于2017年4月19日更新,以更加简洁并解释选择其中一个的优势。在功能上,两者没有区别。realm.write方法是执行写入事务的更方便的方法,但是internally,它仍然简单地使用完全相同的beginWrite/commitWrite事务API:publicfuncwrite(_block:(()throws->Void))thro

ios - 导入 RealmSwift 时不会构建带有 Swift 2.1 项目的 Realm (模块文件是由旧版本的编译器创建的)

我使用的是最新的Xcode7.1,我的项目使用的是Swift2.1。我遵循了Swiftwebsite上的所有指示用于入门(动态框架选项卡)并且一切都构建得很好,直到我尝试在我的类中importRealmSwift。编译器在我尝试导入RealmSwift的行中抛出以下错误:error:modulefilewascreatedbyanolderversionofthecompiler;rebuild'RealmSwift'andtryagain:/Users/USERNAME/Desktop/iosDev/PROJECTNAME/RealmSwift.framework/Modules/R

ios - 将新对象添加到 Realm 中的现有列表

我有两个类(class)。首先看起来像这样:classPerson:Object{dynamicvarowner:String?vardogs:List()}第二类看起来像这样:classDogs:Object{dynamicvarname:String?dynamicvarage:String?}现在在“viewDidLoad”的ViewController中,我用空的List创建对象Person并将其保存在Realm中funcviewDidLoad(){letperson=Person()person.name="Tomas"try!realm.write{realm.add(Pe

ios - Realm.io 和复合主键

我正在使用RealmforSwift1.2,我想知道如何为实体实现复合主键。因此您可以通过覆盖primaryKey()来指定您的主键overridestaticfuncprimaryKey()->String?{//我能看到的唯一方法是像这样创建另一个复合属性varkey1="uniquething"varkey2=123012lazyvarkey:String?={return"\(self.key1)\(self.key2)"}()overridestaticfuncprimaryKey()->String?{return"key"}如何在Realm中正确提供复合键?

ios - Realm 模型中的单一反向关系

我正在开发一个简单的iOS应用程序来学习Swift,并且我正在使用Realm。据我所知,在Realm中,反向关系是通过LinkingObjects属性实现的,该属性是一个包含所有链接到该对象的对象的集合。考虑Realm文档中的这个例子:classPerson:Object{//...otherpropertydeclarationsletdogs=List()}classDog:Object{dynamicvarname=""dynamicvarage=0letowners=LinkingObjects(fromType:Person.self,property:"dogs")}在我的

swift - Realm - 属性不能标记为动态,因为它的类型不能在 Objective-C 中表示

我正在尝试实现以下场景,但我遇到了问题classCommentsModel:Object{dynamicvarcommentId=""dynamicvarownerId:UserModel?dynamicvartreeLevel=0dynamicvarmessage=""dynamicvarmodifiedTs=NSDate()dynamicvarcreatedTs=NSDate()//facingissueheredynamicvarchildComments=List()}我有一个评论模型,它具有非可选属性,其中childComments是相同评论模型类的列表。在此当我声明dyna

swift - 我如何在 Swift 4 中使用 Realm?

我试图在新的Xcode9beta中运行我当前的项目,但是当我这样做时它说ModulecompiledwithSwift3.1cannotbeimportedinSwift4.0。我怎么解决这个问题?我没有使用cocoapods。 最佳答案 更新:自2017年9月14日发布的v2.10.1起,Realm的预构建二进制文件包括使用Xcode9为Swift3.2和4.0构建的框架。不再需要自己构建它们。以下信息仍然适用于希望在未来将Realm与预发布版本的Xcode一起使用的任何人。如果您当前正在集成Realm的预构建二进制文件,则需要切

ios - fatal error : use of unimplemented initializer 'init(realm:schema:)'

我的问题:昨天,我将我的项目(用Swift编写)的Realm框架从0.91.5更新到0.92.0。我发现RealmTeam已经把Swift部分和Objective-C部分从之前的整个CocoaFramework中分离出来了,团队也改了语法。我已经将我的代码更正为最新的Realm语法,但是我在使用init()时仍然遇到了一些问题。错误:编译器抛出错误:fatalerror:对CardModel使用未实现的初始化程序init(realm:schema:)。问题是以前版本的Realm没有发生这个错误。我在项目中使用了MultiPeerConnectivity框架,这意味着我需要Encode和

ios - 使用 Realm 和 Swift 的具有多个部分的 UITableView

好的,所以我找到了很多关于UITableView和多个部分的信息,但是,它们总是包含字符串、数组、静态数据、Obj-C或其他我无法转换为我的情况的东西,主要是因为我对开发应用程序完全陌生。非常感谢任何帮助,因为一个多月以来我一直在尝试不同的方法但没有成功。所以我有多个具有以下属性的Dog对象:classDog:Object{dynamicvarname=""dynamicvarrace=""dynamicvarage=0dynamicvarowner=""dynamicvardogID=""overridestaticfuncprimaryKey()->String?{return"d

ios - 从不正确的线程访问的 Realm - 再次

我注意到访问Realm对象有很多问题,我认为我的解决方案就是解决这个问题。所以我写了这样简单的帮助方法:publicfuncwrite(completion:@escaping(Realm)->()){DispatchQueue(label:"realm").async{ifletrealm=try?Realm(){try?realm.write{completion(realm)}}}}我认为完成block会很好,因为每次我写对象或更新它时,我都使用上面的这个方法。不幸的是,我遇到了错误:libc++abi.dylib:terminatingwithuncaughtexception