问题标签 [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.
ios - Realm + Mantle:集成两个框架时如何避免多重继承重复?
我有一个简单的场景,我想用 Mantle 解析来自 Json 的用户模型并将其保存到领域数据库:
为了使用 Mantle 库,模型接口必须像这样扩展MTLModel类:
为了在领域中保留该模型,我必须声明从RLMObject扩展的第二个接口:
如您所见,我必须实现另一种类型的 User 类,因为我必须扩展RLMObject。
有没有办法避免这种重复?
swift - 如何从领域中的对象中删除 LinkingObjects?
假设我有两个领域 1.0.0 的模型/对象 - ArticleMO 和 TagMO:
如何删除所有带有标签的文章?
我试过了:
但它会导致这样的错误:
RLMArray 已失效或包含对象已被删除
我围绕这个问题所做的所有尝试 - 例如在尝试存储/分离对象后迭代对象,都会导致相同的错误。我错过了什么?
swift - Swift diff realm.io 无需提前获取
我想知道在 realm.io (swift)中是否有可能从一个“表”中选择不在另一个“表”中的所有项目。
假设您有 2 个课程:
是否有可能从 B 中不存在 id 的 A 获得项目的结果?
ios - AsyncDisplayKit 中的领域导致终止 - realm::IncorrectThreadException
我正在使用RealmSwift
with AsyncDisplayKit
,我一直从以下位置收到此错误ASDataController.mm
:
我有一个DataSourceManager
包含数据的类和一个DatabaseManager
处理fetch
andinsert
操作的类。
异常总是发生在_layoutNodesFromContexts:ofKind:completion:
. 我已经尝试过任何我知道的 GCD 组合(串行、并发、屏障),但我无法处理这个异常。
我应该如何处理这种情况?
谢谢!
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 来安装它。谢谢!
realm - 领域 Swift 更新对象不起作用
我正在使用领域 swift v1.0.0,我创建了一个对象,我想永久更新它的值。按照官方指南和关于stackoverflow的一些其他答案,我已经完成了:
而 myrealm 是一个全局变量:
当我恢复 MyObjectClass 的所有值时,我返回 myobject,并在类的 init 中设置了一些初始值(因此我设置为初始值的值被正确存储),但是 property1 是(null)(因为它被声明为一个可选字符串)。
但是,如果我在上面编写代码的函数中查看 myobject,它的 property1 设置为“test”,但它并没有永久保存在 Realm db 中。
谁能帮我找出为什么它不更新 property1 的值?我也尝试过:
编辑:
这是我的模型:
同样的问题也发生在另一个领域对象 property2 上。
ios - 从 RLMResults 中删除对象
如何从 RLMResults 中删除对象。我的意思是在 NSMutableArray 中有一个类似的函数
[self.dogs removeAllObjects]
RLMResults 或 RLMArray 有类似的功能吗?
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())
,它工作正常:
ios - 在领域中编辑属性后删除对象会引发 RLMException 原因:“索引 0 超出范围(必须小于 0)”
我正在制作一个简单的应用程序,用户可以在其中使用 swift 和 realm 为数据库添加习惯和完成主题
一切正常,除非我编辑状态并删除对象应用程序崩溃并出现 RLMException 原因:“索引 0 超出范围(必须小于 0)”
我注意到只有当项目是 tableView 中唯一的单元格时才会发生这种情况
如果有人能帮我解决这个问题,我将不胜感激,因为我整天都在努力解决这个问题
习惯对象是:
我正在使用RealmSwift、SwiftFetchedResultsController来自动更新 tableView、swift 2 和 Xcode 7
这是MyHabitsViewController中的TableViewController相关代码
FetchedResultsControllerDelegate 方法:
UITableViewDelegate & UITableViewDataSource
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!