Tag: 领域

使用Realm的RLMArray存储一串string

有谁知道如何使用Realm来存储string数组? 我正在尝试将以下响应正确映射到Realm中: "zoneInfo": { "tariffInfoLines": [ "In this city you pay per minute." ] } 我们有一个zoneInfo对象,它包含一个tariffInfoLines数组。 这个tariffInfoLines数组包含string。 在Realm中,存储数据有两种不同的variablestypes。 首先是RLMObject ,它允许你的标准NSString,int,long等 第二种types是RLMArray ,用于数组(因为不支持NSArray)。 你必须给数组一个types,它必须是一个RLMObject类的子类。 到目前为止我们已经通过使用ABCRealmString对象来解决这个问题,如下所示: @property RLMArray<ABCRealmString> *tariffInfoLines; ABCRealmString包含一个NSString属性(它基本上是一个包装): @property NSString *value; 然而,这意味着当Realm尝试映射响应以保存数据时,它正在为键“值”(属性的名称)查找值。 看来它预计会有类似于以下的回应: "zoneInfo": { "tariffInfoLines": [ { "value": "In this city you pay per minute." }, ] } 在这个项目中,我们有以下结构: "userOptions": [ { "wantsEmailNotifications": true, […]

Realm – 将具有初始数据的文件添加到项目(iOS / Swift)

我正在使用swift为iOS开发应用程序,并selectRealm作为它的数据库解决scheme。 我在AppDelegate中使用来自领域文档的写入/添加function编写了默认数据,它工作得很好。 所以首次启动后,我有一个* .realm文件与我的初始数据。 在Realm的文档中,我find了一个名为“捆绑领域与应用程序”的部分 ,我添加了我的* .realm文件来编写项目和构build阶段。 而且我不明白接下来应该怎么做(关于压缩* .realm文件的一部分)。 我试图从迁移示例中了解代码,但是我不太了解Obj-C。 请给出清晰的步骤,以便将具有初始数据的* .realm文件添加到swift ios项目,并在首次启动时将此数据加载到Realm数据库。

迁移多个领域 – 领域版本大于模式版本exception

为什么抛出这个exception(当我试图迁移多个域)? bool ObjectStore::is_schema_at_version(Group *group, uint64_t version) { uint64_t old_version = get_schema_version(group); if (old_version > version && old_version != NotVersioned) { throw ObjectStoreException(ObjectStoreException::Kind::RealmVersionGreaterThanSchemaVersion, {{"old_version", to_string(old_version)}, {"new_version", to_string(version)}}); } return old_version != version; }

testing领​​域的平等

我试图在unit testing中testingRealm对象之间的相等性。 但是,我无法让对象返回true的平等。 根据这里的Realm docs ,我应该可以这样做: let expectedUser = User() expectedUser.email = "help@realm.io" XCTAssertEqual(testRealm.objects(User.self).first!, expectedUser, "User was not properly updated from server.") 但是,我得到以下代码的testing失败: 领域模型 class Blurb: Object { dynamic var text = "" } testing func testRealmEquality() { let a = Blurb() a.text = "asdf" let b = Blurb() b.text = "asdf" XCTAssertEqual(a, b) } […]

NSDiacriticInsensitivePredicateOption不受Realm支持

我有一个文本属性的DictObject包含一些越南的字母,如“Sống”。 @interface DictObj : RLMObject @property NSString *text;//Ex: sống @end 我想使用BEGINSWITH[cd]来执行变音不敏感search,但Realm目前不支持它: RLMResults *fetchedResults = [DictObj objectsInRealm:realm where:@"text BEGINSWITH[cd] %@",inputText]; 我可以使用kCFStringTransformStripDiacritics来转换我的input文本,但是我不知道如何在string已经存储在Realm文件中时执行该string转换。

如何使用RLMArray保存一个数组

注意:对于Realm和Swift,我是相当新的,所以对于我不明白的任何显而易见的事情,都不要理睬。 我有一个工作的UITableView,我打算填充任务。 我希望用户能够根据需要添加和删除任务,因此我无法对任务进行硬编码,我希望在应用程序启动之间保存任务。 这样做的最明显的方法是创build一个在Realm中保存的数组。 问题是,我不明白如何在Realm中保存数组。 我已经阅读了Realm网站上的文档,但是由于我自己对Swift还是比较新的,所以发现它相当混乱(而且它在ObjC中)。 你将如何创build一个数组并保存它? 我最初试过这个,当它不工作时,我做了一些研究,发现RLMArray实际上并不是一个数组: let ToDoTasksArray: RLMArray = ["Task Goes Here", "Task Goes Here2"] 任何帮助吗? 谢谢! 编辑: 我也尝试将一个数组保存为RLMObject作为一个对象,如下所示: realm.addObject(ToDoTasksArray) 但这也行不通,这并不令我感到意外。 一个数组不是一个对象。

导入RealmSwift不再使用CocoaPods工作

这里推荐的RealmSwift Kruherson的CocoaPods安装(也可以从这里的realm.io页面推荐)基本上可以工作 – 但是在我的应用程序中使用Swift 0.92.3还有一个问题: 以下导入不再被识别! import RealmSwift 为了使CocoaPods在Swift下工作,我还需要做些什么? 以下是我使用的Podfile的内容: platform :ios, '8.3' use_frameworks! xcodeproj '/Users/XXX/…/MyApp/MyApp.xcodeproj' target 'MyApp' do pod 'RealmSwift', '>= 0.92.3' end 在这里,我的Xcode项目(只有Pods部分)的屏幕截图看起来像在“pod安装”之后: 有几件“红色的东西” – 问题可能在这里,还是我还想念什么? 我需要做什么才能进入import RealmSwift再次工作?

RLMArray – 从对象中检索数组

我的模特: Conv.h #import <Realm/Realm.h> #import "ConvText.h" @interface Conv : RLMObject @property NSInteger c_id; @property RLMArray<ConvText> *cts; @end ConvText.h #import <Realm/Realm.h> @interface ConvText : RLMObject @property NSInteger ct_id; @property NSInteger time; @end RLM_ARRAY_TYPE(ConvText) 当我试图从Conv中提取ConvText时: Conv *c = [Conv objectsWhere:@"c_id = %@",@(1)]; ConvText *ct = [c.cts arraySortedByProperty:@"time" ascending:NO][0]; <– 我得到这个消息: 'RLMException',原因:'这个方法只能在从RLMRealm检索到的RLMArray实例中调用' 我也尝试这样的: RLMArray *cts = c.cts; ConvText […]

用Swift 3.0编译的Realm Swift模块不能在Swift 3.0.1中导入

我刚刚开始使用Realm 2.0.4与Xcode 8,它工作正常。 今天我更新到Xcode 8.1,不再编译。 我得到一个错误,说“Swift 3.0编译模块不能在Swift 3.0.1中导入”。 我怎样才能解决这个问题? 我已经从embedded式框架表中删除Realm.framework和RealmSwift.framework,并在3.0.1版本中删除,但问题依然存在。 我已经删除了DerivedData文件夹,它没有工作。 我该怎么办? 我不使用CocoaPods或迦太基。

SWIFT – 领域dbencryption不起作用

我试图encryption存储在领域数据库中的数据。 我遵循Realm的Swift页面上提到的示例代码 。 我想encryption数据而不是数据库文件。 以下是我正在使用的代码: var error: NSError? = nil let configuration = Realm.Configuration(encryptionKey: EncryptionManager().getKey()) if let realmE = Realm(configuration: configuration, error: &error) { // Add an object realmE.write { realmE.add(objects, update: T.primaryKey() != nil) } } 哪里对象是我需要在数据库中插入的对象的列表。 下面是从示例代码中选取的getKey()函数的代码: func getKey() -> NSData { // Identifier for our keychain entry – should be unique for […]