问题标签 [realm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
529 浏览

objective-c - Property Mysteriously Set To Nil

I am trying to implement a chat feature in my application, using Realm.io as an internal database to store the chat messages, and PubNub to send and receive messages. I have ChatSessions, which define the channels that messages are sent over, and ChatMessages, which represent the messages themselves, and hold references to the text of the message, the date the message was sent, the name of the sender of the message, and the ChatSession that the message is a part of.

In the following code, I am initializing a ChatMessage from a PNMessage received across the channel, with all fields being specified. The issue I am having is that when Realm goes to write the message to the database, the session field of the ChatMessage is set to nil, despite that fact that right before the write method is called, the session field has a valid ChatSession specified.

The NSLog right after setting chatMessage.session correctly logs what I want. The chatMessage has the correct session name. However, the NSLog within writeToDefaultRealm: correctly logs the message text, but logs a nil value for session.sessionName.

Does anyone know why this session field is being set to nil? Thank you

EDIT

ChatMessage.h

ChatSession.h

0 投票
1 回答
1749 浏览

objective-c - UITableViewCell 自定义属性(在 Swift 中)

我希望能够以编程方式将自定义属性归因于 UITableViewCell (或任何其他对象)

我在 Swift w/Realm.io DB 中使用了一个委托方法(但我猜它在 Objective-c 中应该是类似的东西)。是否在下面使用注释掉的行 == 这样做的正确方法?

归因标题工作得很好(因为它是一个标签),但是我如何将其他(未声明的)属性归因于一个单元格,以便以后在遍历 tableView 时恢复它们?

Println 产生以下结果,但 position 属性不在其中:

更新:我正在为表格单元格使用自定义类:

0 投票
2 回答
3666 浏览

xcode - 使用 Swift 在 tableView 中重新排序 Realm.io 数据

我已经使用 Realm.io 实现了一个 ios 应用程序的基本示例

我希望能够在我的 iOS 应用程序中重新排序表行并将订单保存回 Realm。领域模型包含一个position为此目的而调用的属性。

PS:对不起这么多代码。

提前致谢

0 投票
2 回答
8632 浏览

ios - 为什么我的领域对象不保存存储的值?

我正在四处寻找一种解决方案,以在我的一个应用程序中实现小型离线数据存储,该应用程序使用起来既简单又快速。无论如何,我遇到了Realm来做这件事。但是,我遇到了一个问题,每次我启动我的应用程序时,数据库中的内容都是空的。

我完成所有分配并调用beginWriteTransaction方法。设置我的数据库变量值。然后,我将对象添加到领域,最后是 commitWriteTransaction

所以,我做了一个NSLog来查看该值是否实际设置正确(在我的应用程序中更新它之后)。但是当我关闭我的应用程序或停止并在 xcode iphone5 模拟器中再次运行它时。我尝试在 viewDidLoad 方法中将数据库中的值设置为我的应用程序中的全局变量。我执行一个 NSLog 来检查该值是在我的数据库中还是在全局变量中,但它显示为 null,这意味着它没有被存储/保存。

这是代码..

我还将考虑实现这一目标的任何其他选择。谢谢!

*****更新!** 这是我在测试中得到的结果,我将其更改为在两种方法中执行beginWriteTransactioncommitWriteTransaction,但仍然不起作用。它获取我在我的应用程序中提供的值,但是当我再次访问它时,它不会从数据库中提取/获取该值(如果它曾经存储过的话)。

Xcode 6 的屏幕截图显示了 NSLog 和部分代码

0 投票
1 回答
11392 浏览

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

所以我不知道为什么我会收到这个错误。错误信息如下:

* 由于未捕获的异常“RLMException”而终止应用程序,原因:“尝试在写入事务之外修改对象 - 首先在 RLMRealm 实例上调用 beginWriteTransaction。” * First throw call stack: (0x2f7b0f83 0x39f61ccf 0xc46ef 0xc3c23 0xc0c9d 0xb3e73 0x3a449833 0x3a449ded 0x3a44a297 0x3a45c88d 0x3a45cb21 0x3a58bbd3 0x3a58ba98) libc++abi.dylib: terminating with uncaught exception of type NSException

并在执行此代码时抛出。

很明显,我正在写事务内部。这是Realm的错误吗?还是我错过了什么……?

0 投票
2 回答
182 浏览

ios - 意外的大量存储使用

我有一个应用程序允许用户在 UITableView 中发布消息以供其他用户查看。我使用 Parse.com 作为我的应用程序的后端。每次加载表时,都会从 parse 中获取表中显示的所有信息。我遇到的问题是,当用户滚动浏览表中的帖子时,应用程序开始从磁盘中吸收内存。该应用程序从大约 9MB 开始,在上下滚动所有帖子几分钟后,可能会超过 500MB。

我无法想象这是怎么发生的,因为我没有将任何数据保存到磁盘。有没有人见过这个,或者知道什么可能会占用这么多的存储空间?或者有没有人有一个好的策略来弄清楚到底存储了什么?

谢谢!

编辑

所以我找到了占用所有内存的代码。当我注释掉对此方法的调用时,我没有遇到问题。

这是代码:

基本上,我正在检查一个内部数据库(使用 Realm.io)来查看当前用户是否喜欢该帖子。对 [Post objectsWithPredicate:pred] 的调用会占用大量内存。为什么会这样做?一旦变量超出范围,内存不会被释放吗?或者这是由于 Realm 中的一些细节超出了我的想象?

0 投票
1 回答
4875 浏览

objective-c - 带有 NSStrings 数组的 RLMObject

我一直在升级一个项目以使用 Realm 作为持久性存储,但我找不到任何关于如何在我的一个模型中使用字符串数组的文档。

RLMObject 的 Array 的实现是使用 RLMArray ,其中 T 继承 RLMObject

我可以创建一个继承.. 属性的对象,其中的属性是字符串......但这似乎需要相当多的开销来替换字符串的 NSArray。

有谁知道推荐的最佳实践来做到这一点?

0 投票
2 回答
4929 浏览

ios - 在 Realm 中查询(使用 Swift)

我在玩realm.io。我已经写了几个对象,现在我想查询它们。我的数据类:

和我的查询代码

网页端和 RLMObject 的标题表明我应该可以说 Sample.objectsWhere("sampleKey = 'SampleValue'") (或类似的),但是 objectsWhere 给出了一个编译错误,抱怨函数不存在,并且有没有自动完成它。所以我尝试使用objectsForPredicate,但这表示类型'any'(挖掘标题,我发现这等于ObjC在Realm 术语中的'id'类型)。我在这里做错了什么?我尝试非常明确,确保使用 NSString 而不是 String 和 NSArray 而不是 Array,但仍然有一些东西被解释为 'id' 而不是特定类型。

有什么建议么?

干杯

-尼克

0 投票
1 回答
3780 浏览

ios - 在 Realm 中查询关系数组

可以说我有一个DogPerson领域对象,例如

这是来自 Realm 示例项目的示例代码。唯一的区别是Dogentity 有一个Person对象数组 as owners,换句话说就是与Person's的反比关系dogs

现在我想要完成的事情是查询Dog具有 aPerson作为owners.

我怎样才能做到这一点?

0 投票
2 回答
3959 浏览

ios - 如何使用 realm.addNotificationBlock?

我在 IOS 应用程序中玩 swift 和 realm。

我尝试使用 realm.addNotificationBlock 重新加载 tableView。但我不知道如何实现这一点。有人可以帮我提供确切的代码示例吗?

谢谢