我已经通过领域创建了一个数据库,我无法找到该文件,因为我的操作系统(Yosemite)在/ private/var/mobile中没有移动文件夹.
我应该如何访问我的领域以在浏览器中运行?
Cross从谷歌小组发布
我想要实现的内容:
class func getSomeObject() -> [SomeObject]? {
let objects = Realm().objects(SomeObject)
return objects.count > 0 ? objects : nil
}
Run Code Online (Sandbox Code Playgroud)
[SomeObject]如果相反,我怎样才能返回对象Results?
我刚刚发现了Realm,并且想要更详细地探索它,所以我决定创建示例应用程序并搞乱它.到现在为止还挺好.
但是,我还没有解决的一件事是如何在Realm Browser中查看我的数据库.如何才能做到这一点?
我们正在将项目转换为使用Realm.到目前为止,我们给Realm浏览器留下了非常深刻的印象(非常方便!).
结果,出现了一些问题,我们希望在继续之前得到一些具体的使用模式.我们的应用程序是多线程的(API调用,动画等),因此在阅读问题时请记住这一点,因为我知道不能跨线程(当前)访问Realm实例.
realm物业Object?如果使用该对象的函数没有创建对象或Realm(当然在同一个线程上),我们已经使用它来写入Realm.例如...
func saveStuff(thingToUpdate: Object?) {
if let thingToUpdate = thingToUpdate, let realm = thingToUpdate.realm {
realm.write {
thingToUpdate.name = "lionpants"
}
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.我期待着你的回答.:d
是否可以使用Enum作为我的模型的属性?我目前有一个这样的课程:
class Checkin: RLMObject {
dynamic var id: Int = 0
dynamic var kind: String = "checked_in"
var kindEnum: Kind = .CheckedIn {
willSet { self.kind = newValue.rawValue }
}
enum Kind: String {
case CheckedIn = "checked_in"
case EnRoute = "en_route"
case DroppedOff = "dropped_off"
}
....
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我希望能够将该kind属性设置为Enum并让Realm .rawValue在将对象保存到商店时自动调用该属性.这在Realm中是否可行,或者是否已有针对它的功能请求?
我正在构建一个应用程序,我需要在其中使用数据库.我正在考虑使用Room,因为它现在是新的和热门的.但我也听说过很多关于Realm的好东西.有人能指出使用每种产品的可能优势吗?
我做了我的研究并阅读了文档,但我没有经验可以自己理解
当我启动我的应用程序时,我执行API调用以查看是否有新数据可用.数据存储在我的本地Realm数据库中,其中一些数据显示在初始表视图控制器中.
API调用完成后,我会检查是否满足某些条件,要求我从数据库中删除一堆先前的数据,然后创建新对象.但是,当我删除旧数据时,我的应用程序崩溃时出现以下异常:
2015-08-06 11:56:32.057 MSUapp[19754:172864] *** Terminating app due to uncaught exception 'RLMException', reason: 'Object has been deleted or invalidated.'
*** First throw call stack:
(
0 CoreFoundation 0x000000010660cc65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001083bdbb7 objc_exception_throw + 45
2 Realm 0x0000000105b78e95 _ZL17RLMVerifyAttachedP13RLMObjectBase + 85
3 Realm 0x0000000105b7878d _ZL10RLMGetLinkP13RLMObjectBasemP8NSString + 29
4 Realm 0x0000000105b7c23e ___ZL17RLMAccessorGetterP11RLMProperty15RLMAccessorCodeP8NSString_block_invoke_12 + 46
5 MSUapp 0x0000000105764867 _TFFC6MSUapp29FavoriteLeaguesViewController18generateLeagueListFS0_FT_T_U_FTCS_6LeagueS1__Sb + 39
6 MSUapp 0x00000001057648eb _TTRXFo_oC6MSUapp6LeagueoS0__dSb_XFo_iS0_iS0__dSb_ + 27
7 libswiftCore.dylib 0x0000000108674ae2 _TFSs14_insertionSortUSs21MutableCollectionType_USs13GeneratorType__Ss22BidirectionalIndexType_Ss18_SignedIntegerType_Ss33_BuiltinIntegerLiteralConvertible____FTRQ_GVSs5RangeQQ_5Index_RFTQQQ_9Generator7ElementS7__Sb_T_ + 1570
8 libswiftCore.dylib 0x0000000108676682 _TFSs14_introSortImplUSs21MutableCollectionType_USs13GeneratorType__Ss21RandomAccessIndexType_Ss18_SignedIntegerType_Ss33_BuiltinIntegerLiteralConvertible_Ss16SignedNumberType_S3_____FTRQ_GVSs5RangeQQ_5Index_RFTQQQ_9Generator7ElementS8__SbSi_T_ + 1250 …Run Code Online (Sandbox Code Playgroud) 我想从领域中删除所有等于userid的消息对象
RealmQuery<Message> rowQuery = realm.where(Message.class).equalTo(Message.USER_ID, userId);
realm.beginTransaction();
//TODO : here I want to remove all messages where userId is equal to "9789273498708475"
realm.commitTransaction();
Run Code Online (Sandbox Code Playgroud) 我非常喜欢与Swift结合使用Realm(0.92)但是有一个关于从数据库中读取对象的问题.我的目标是使用已知的唯一ID(也恰好是主键)检索单个对象.
所有文档似乎都是针对多个对象的查询,然后对这些对象进行过滤.在这种情况下,我知道对象ID,因为它已知是唯一的,所以想直接检索它.
我目前的做法如下:
Realm().objects(Book).filter("id == %@", prevBook.nextID).first
Run Code Online (Sandbox Code Playgroud)
这看起来很严厉.以前版本的文档表明有更直接的方法,但我似乎无法在文档中找到它.
我当前的方法的问题是它崩溃了以下函数的异常:
public func filter(predicateFormat: String, _ args: CVarArgType...) -> Results<T>
Run Code Online (Sandbox Code Playgroud)
神奇地报告了例外情况:
EXC_BAD_ACCESS(代码= 1,地址= 0xedf)
任何建议都非常欢迎.
预计一行提问:我已经确认用已知的好ID替换prevBook.nextID并不能解决问题
我在我的应用程序中使用Realm作为后端.我创建了一个名为Setting的表.我按照Realm官方网站上给出的步骤在该表中添加了值.但是当我要从该表中检索值时,我得到了异常
"io.realm.exceptions.RealmMigrationNeededException:必须提供RealmMigration":"realm = Realm.getInstance(getApplicationContext());".
实际上,我是android和Realm的新手,所以找麻烦来理解什么是问题.