问题标签 [realm-cocoa]

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 投票
2 回答
564 浏览

ios - Realm + Mantle:集成两个框架时如何避免多重继承重复?

我有一个简单的场景,我想用 Mantle 解析来自 Json 的用户模型并将其保存到领域数据库:

为了使用 Mantle 库,模型接口必须像这样扩展MTLModel类:

为了在领域中保留该模型,我必须声明从RLMObject扩展的第二个接口:

如您所见,我必须实现另一种类型的 User 类,因为我必须扩展RLMObject

有没有办法避免这种重复?

0 投票
0 回答
540 浏览

swift - 如何从领域中的对象中删除 LinkingObjects?

假设我有两个领域 1.0.0 的模型/对象 - ArticleMO 和 TagMO:

如何删除所有带有标签的文章?

我试过了:

但它会导致这样的错误:

RLMArray 已失效或包含对象已被删除

我围绕这个问题所做的所有尝试 - 例如在尝试存储/分离对象后迭代对象,都会导致相同的错误。我错过了什么?

0 投票
1 回答
249 浏览

swift - Swift diff realm.io 无需提前获取

我想知道在 realm.io (swift)中是否有可能从一个“表”中选择不在另一个“表”中的所有项目。

假设您有 2 个课程:

是否有可能从 B 中不存在 id 的 A 获得项目的结果?

0 投票
3 回答
400 浏览

ios - AsyncDisplayKit 中的领域导致终止 - realm::IncorrectThreadException

我正在使用RealmSwiftwith AsyncDisplayKit,我一直从以下位置收到此错误ASDataController.mm

我有一个DataSourceManager包含数据的类和一个DatabaseManager处理fetchandinsert操作的类。

异常总是发生在_layoutNodesFromContexts:ofKind:completion:. 我已经尝试过任何我知道的 GCD 组合(串行、并发、屏障),但我无法处理这个异常。

我应该如何处理这种情况?

谢谢!

0 投票
1 回答
625 浏览

realm - Realm 1.0.1 iOS obj-c 编译错误

我将 iOS Obj-C 的 Realm 从 0.98 更新到 1.0.1,但现在我们在编译过程中遇到了这些错误:

undef: __ZN5realm4util23PlatformSpecificCondVarC1Ev undef: __ZN5realm4util23PlatformSpecificCondVarD1Ev undef: __ZNK5realm13TableViewBase16maximum_datetimeEmPm undef: __ZNK5realm5Table16maximum_datetimeEmPm undef: __ZNK5realm11StringIndex3getEmRNSt3__15arrayIcLm8EEE undef: __ZN5realm5Table12set_datetimeEmmNS_8DateTimeE undef: __ZN5realm9Allocator10do_reallocEmPKcmm undef: __ZNK5realm5Table16minimum_datetimeEmPm undef: __ZN5realm5QueryC1ERKNS_5TableERKNS_4util8bind_ptrINS_8LinkViewEEE undef: __ZNK5realm13TableViewBase16minimum_datetimeEmPm undef: __ZNK5realm5Table12get_datetimeEmm undef: __ZN5realm14LinkListColumn19unregister_linkviewERKNS_8LinkViewE Undefined symbols for architecture x86_64:
“realm::util::PlatformSpecificCondVar::PlatformSpecificCondVar()”,引用自:realm::SharedGroup::SharedGroup(realm::Replication&, realm::SharedGroup::DurabilityLevel, char const*, bool) in libRealm.a( shared_realm.o)
"realm::util::PlatformSpecificCondVar::~PlatformSpecificCondVar()",引用自:realm::SharedGroup::SharedGroup(realm::Replication&, realm::SharedGroup::DurabilityLevel, char const*, bool)在 libRealm.a(shared_realm.o)
"realm::TableViewBase::maximum_datetime(unsigned long, unsigned long*) const"中,引用自:auto realm::Results::max(unsigned long)::$_3::operator ()(realm::TableView const&) libRealm.a(results.o) 中的 const
“realm::Table::maximum_datetime(unsigned long, unsigned long*) const”,引用自:auto realm::Results::max(unsigned long)::$_3::operator()(realm::Table const&) const in libRealm.a(results.o) "realm::StringIndex::get(unsigned long, std::__1::array&) const",引用自:void realm::StringIndex::set(unsigned long, realm: :null) 在 libRealm.a(RLMArray.o) 中 void realm::StringIndex::erase(unsigned long, bool) 在 libRealm.a(RLMArray.o) 中 void realm::StringIndex::erase(unsigned long, bool) 在libRealm.a(RLMArray.o) void realm::StringIndex::erase(unsigned long, bool) 在 libRealm.a(RLMArray.o) void realm::StringIndex::set(unsigned long, long long) 在 libRealm.a (RLMQueryUtil.o)
“realm::Table::set_datetime(unsigned long, unsigned long, realm::DateTime)”,引用自:realm::RowFuncs >::set_datetime(unsigned long, realm::DateTime) in libRealm.a(RLMAccessor.o ) libRealm.a(object_store.o) 中的 copy_property_values(realm::Property const&, realm::Property const&, realm::Table&)
“realm::Allocator::do_realloc(unsigned long, char const*, unsigned long, unsigned long)”,引用自:vtable for realm::Allocator in libRealm.a(RLMArray.o) “realm::Table::minimum_datetime (unsigned long, unsigned long*) const",引用自:auto realm::Results::min(unsigned long)::$_7::operator()(realm::Table const&) const in libRealm.a(results. o) "realm::Query::Query(realm::Table const&, realm::util::bind_ptr const&)",引用自:libRealm 中的 realm::Table::where(realm::util::bind_ptr const&) .a(RLMArrayLinkView.o)
“realm::TableViewBase::minimum_datetime(unsigned long, unsigned long*) const”,引用自:auto realm::Results::min(unsigned long)::$_7::operator()(realm::TableView const&) const in libRealm.a(results.o) "realm::Table::get_datetime(unsigned long, unsigned long) const",引用自:realm::RowFuncs >::get_datetime(unsigned long) const in libRealm.a(RLMAccessor .o) libRealm.a(object_store.o)
"realm::LinkListColumn::unregister_linkview(realm::LinkView const&)" 中的 copy_property_values(realm::Property const&, realm::Property const&, realm::Table&),引用自: libRealm.a(RLMArray.o) 中的 realm::LinkView::~LinkView() ld: 未找到架构 x86_64 的符号 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我正在使用 cocoapods 来安装它。谢谢!

0 投票
0 回答
1973 浏览

realm - 领域 Swift 更新对象不起作用

我正在使用领域 swift v1.0.0,我创建了一个对象,我想永久更新它的值。按照官方指南和关于stackoverflow的一些其他答案,我已经完成了:

而 myrealm 是一个全局变量:

当我恢复 MyObjectClass 的所有值时,我返回 myobject,并在类的 init 中设置了一些初始值(因此我设置为初始值的值被正确存储),但是 property1 是(null)(因为它被声明为一个可选字符串)。

但是,如果我在上面编写代码的函数中查看 myobject,它的 property1 设置为“test”,但它并没有永久保存在 Realm db 中。

谁能帮我找出为什么它不更新 property1 的值?我也尝试过:

编辑:

这是我的模型:

同样的问题也发生在另一个领域对象 property2 上。

0 投票
3 回答
929 浏览

ios - 从 RLMResults 中删除对象

如何从 RLMResults 中删除对象。我的意思是在 NSMutableArray 中有一个类似的函数

[self.dogs removeAllObjects]

RLMResults 或 RLMArray 有类似的功能吗?

0 投票
1 回答
4350 浏览

ios - 领域 - 从不正确的线程 Swift 访问的领域

我是 Realm 的新手,遇到“从不正确的线程访问的领域”错误。我已经读过必须访问从其检索到的同一领域上的数据。但是,在成功访问该对象后,我收到了此错误。这是一些代码:

此方法调用一个方法,该方法使用以下方法创建应用程序数组:let array = Array(results)

然后我将它传递给一个设置数组的方法:

在上述方法中,我打印出数组并且效果很好。然而,在周期的后期,tableViewDatasource 方法 cellForRowAtIndexPath 被调用。在这里,我尝试使用应用程序数组,但应用程序因“不正确的线程”错误而崩溃。这是方法:

如您所见,我在上述方法中添加了一条打印语句。当我尝试在这里打印应用程序数组时,我遇到了崩溃。

为什么我可以在设置它的方法中打印出来,但是在这里它崩溃了?是因为cellForRowAtIndexPath在主线程上调用了吗?如果是这样,在这种情况下如何更新我tableView的?干杯。

========

编辑:

当我执行以下操作时,cellForRowAtIndexPath我得到一个空结果:

编辑2:

我在关闭中处理保存。dispatch_async当数据返回并且它仍然崩溃时,我尝试将它传递回主线程。但是,我将其移至dispatch_async调用 self.tableView.reloadData() 之前。它现在不会崩溃,这很好,但数据并不总是可用。如果我通过使用断点来减慢它的速度,我会取回数据。但是,如果我让它运行,则数据不存在。有没有办法知道保存在后台线程上的数据何时在主线程上可用?

这是我正在使用的代码:

数据并不总是存在。

编辑3:

我现在已经将 save 方法包装在 a 中dispath_async(dispath_get_main_queue()),它工作正常:

0 投票
1 回答
884 浏览

ios - 在领域中编辑属性后删除对象会引发 RLMException 原因:“索引 0 超出范围(必须小于 0)”

我正在制作一个简单的应用程序,用户可以在其中使用 swift 和 realm 为数据库添加习惯和完成主题

一切正常,除非我编辑状态并删除对象应用程序崩溃并出现 RLMException 原因:“索引 0 超出范围(必须小于 0)”

我注意到只有当项目是 tableView 中唯一的单元格时才会发生这种情况

如果有人能帮我解决这个问题,我将不胜感激,因为我整天都在努力解决这个问题

习惯对象是:

我正在使用RealmSwiftSwiftFetchedResultsController来自动更新 tableView、swift 2 和 Xcode 7

这是MyHabitsViewController中的TableViewController相关代码

FetchedResultsControllerDelegate 方法:

UITableViewDelegate & UITableViewDataSource

0 投票
1 回答
177 浏览

ios - linkingObjectsProperties override from swift 2.0

I am using realm-cocoa(v1.0.1) with a Swift 2.0 project (need objective-c interoperability) and am having trouble overriding the linkingObjectsProperties method.

I've followed the Realm documentation (https://realm.io/docs/objc/latest/#inverse-relationships) and defined my function override in my RLMObject subclass as follows:

The compiler then complains, saying "Method does not override any method from its superclass".

If I prefix the definition with @objc, the error changes to "Overriding method with selector 'linkingObjectsProperties' has incompatible type '() -> NSDictionary'

Any ideas?

Thanks!