Tag: 领域

Realm中的关系数据库?

我想在iOS Realm DB中创build简单的关系数据库 。 如何链接用户ID和那里愿望清单产品类似于SQL中的关系数据库。 像下面的图像的例子: 我知道我可以创build2个独立的Realm模型(表格),用time_stamp存储用户ID,在Wishlist的第二个表中存储用户ID,每个Wishlist产品或用户ID和一个Wishlist,用户有一个Wishlist数组。 现在我想存储所有用户有多个愿望清单。 这意味着每次用户进入APP时,我都必须查询每个愿望清单,看它是否适用于这个特定的愿望清单。 问题出在Wishlist表中,它没有任何主键和不允许创build没有主键的模型的领域。 Realm是否支持外键概念? 并且复合键的使用是复杂的。 有没有更有效的方法来做到这一点?

将数据导入到Realm数据库

我想使用一个集中的数据库,并正在寻找各种select来做到这一点。 根据我的理解,我有三个主要选项:SQLite,Realm和CoreData。 这些选项适用于所有用户的大型集中式数据库吗? 另外,我试图从JSON和CSV导入数据到Realm数据库。 Realm是否有这个function?

作为成员的领域对象保存后为零

我遇到了一个Realm对象有另一个Realm对象作为成员的问题,在添加到数据库之后总是nil 。 class MedPack: Object { dynamic var uuid = NSUUID().UUIDString dynamic var medicine: Medicine? convenience init(medicine: Medicine) { self.init() self.medicine = medicine } override static func primaryKey() -> String? { return "uuid" } } 对象的参考Medicine总是零后添加。 class Medicine: Object { var uuid = NSUUID().UUIDString var name: String? override static func primaryKey() -> String? { return […]

将主键添加到RLMObject需要迁移,任何想法如何?

我正在使用Realm.io作为持久存储的iOS应用程序。 我刚刚通过添加一个主键更新了我的一个自定义RLMObject子类。 当我运行该应用程序,我得到一个错误告诉我,我需要添加迁移步骤: 'Migration is required for object type 'MY_REALM_OBJECT' due to the following errors: – Property 'property_name' has been made a primary key.' 我有其他的迁移代码,但在Realm文档中找不到关于如何将主键添加到RLMObject的任何内容。 有人知道怎么做吗?

领域cocoa:通过PKfind多个对象

很久以前的潜伏者,第一次提问。 我在一个项目中使用了Realm Cocoa(来自Realm.io),并且正在努力通过PK进行search。 比方说,我有一个名为RLMFoo的实体,它有一个名为bar的主键。 我也有一个PK列表,比方说存储在一个数组中: NSArray *primaryKeys = @[@"bar1", @"bar2", @"bar3"] 有没有什么办法在一个查询中从我的领域检索RLMFoo类的所有实体? 我已经尝试了迄今为止: 格式为: [RLMFoo objectsInRealm:realm withPredicate:[NSPredicate predicateWithFormat:@"bar IN %@", primaryKeys]]; Realm's where: [RLMFoo objectsInRealm:realm where:@"bar IN %@", strippedIds]; 谓词与块: 。 NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { RLMFoo *foo = (RLMFoo *)evaluatedObject; return [primaryKeys containsObject:foo.bar]; }]; [RLMFoo objectsInRealm:realm withPredicate:predicate]; 但是到目前为止我发现的唯一工作是查询每个主键值的领域并汇总结果,这看起来很慢: NSMutableArray *results […]

领域date查询

在我的RealmSwift(0.92.3)下的Xcode6.3,我将如何 // the Realm Object Definition import RealmSwift class NameEntry: Object { dynamic var player = "" dynamic var gameCompleted = false dynamic var nrOfFinishedGames = 0 dynamic var date = NSDate() } 当前的tableView查找对象的数量(即当前所有对象)如下所示: func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { if let cnt = RLM_array?.objects(NameEntry).count { return Int(cnt) } else { return […]

你如何在iOS上压缩Realm DB?

我想定期在iOS上压缩一个Realm实例来恢复空间。 我认为这个过程是将数据库复制到临时位置,然后将其复制并使用新的default.realm文件。 我的问题是Realm()行为像一个单身人士,并回收对象,所以我不能真正closures它,并告诉它打开新的default.realm文件。 这里的文档( https://realm.io/docs/objc/latest/api/Classes/RLMRealm.html )build议我在autorelease { }包装所有的Realm()调用,但是不能这么复杂。

在领域查询(使用Swift)

我正在玩realm.io。 我写了几个对象,现在我想查询它们。 我的数据类: class Sample : RLMObject { dynamic var sampleKey : String = "" } 和我的查询代码 @IBAction func readLocalRecord(sender: UIButton) { let s : NSString = NSString.stringWithString("sampleKey == SampleValue") let p : NSPredicate = NSPredicate(format: "sampleKey = %@", argumentArray: NSArray(object: NSString.stringWithString("SampleValue"))) // the following throws exception, that I cannot catch in Swift: // 'Unsupported […]

在后台线程上执行的领域写入仍然阻止主UI

在我的应用程序中,我需要对Realm执行大量的写入操作,任何地方都有100到10,000个对象。 显然这是一个大的写,所以我试图在后台执行这个写,使用户可以执行其他操作,甚至没有注意到写。 不幸的是,即使我认为我的写入是在后台线程上执行的,主UI仍然被阻塞。 这里是我打电话来执行写入领域的方法的jist。 这个方法是从我正在循环的数组中的单个对象重复调用。 它看起来像我做任何公然错误的? 任何帮助将不胜感激。 func writeCustomerToRealm(inputCustomer:Customer) { let qualityOfServiceClass = QOS_CLASS_BACKGROUND let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0) dispatch_async(backgroundQueue, { let realm = try! Realm() realm.beginWrite() realm.add(self.swapCustomerForRealmCustomer(inputCustomer)) try! realm.commitWrite() }) }

尝试在写入事务之外修改对象

所以我不知道为什么我得到这个错误。 错误消息如下所示: *由于未捕获的exception“RLMException”而终止应用程序,原因是:“尝试修改写事务之外的对象 – 首先在RLMRealm实例上调用beginWriteTransaction。 *第一次调用堆栈:(0x2f7b0f83 0x39f61ccf 0xc46ef 0xc3c23 0xc0c9d 0xb3e73 0x3a449833 0x3a449ded 0x3a44a297 0x3a45c88d 0x3a45cb21 0x3a58bbd3 0x3a58ba98)libc ++ abi.dylib:以NSExceptiontypes的未捕获exception 执行此代码时被抛出。 – (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { UITextField * alertTextField = [alertView textFieldAtIndex:0]; if (![self.chatSession.theirAlias isEqualToString:alertTextField.text]) { self.sender = alertTextField.text; dispatch_queue_t queue = ((AppDelegate *)[UIApplication sharedApplication].delegate).queueForWrites; dispatch_async(queue, ^{ [[RLMRealm defaultRealm] beginWriteTransaction]; self.chatSession.myAlias = alertTextField.text; // This […]