首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在realm中将变量重置为默认值

在realm中将变量重置为默认值
EN

Stack Overflow用户
提问于 2016-06-20 09:31:01
回答 2查看 999关注 0票数 3

在RealmSwift中,我有一个对象Message。

我使用ObjectMapper从REST服务映射它的属性。我还想要一个本地属性,dynamic var read:Bool = false来跟踪用户是否阅读了一条消息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try! realm.write({
    m.read = true
})

我可以在Realm Browser中看到更新的值。

但是,每次我从服务获取对象时,该变量都会被重置为其默认值。我确信我做错了什么,但我不确定是RealmSwift还是ObjectMapper。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2016-06-20 17:41:42

我的假设是,为什么会发生这种情况,是因为当您从服务器获取对象时,您会收到JSON,然后将其映射到新的Message对象(与之前设置read = trueMessage对象不同)。这些消息对象使用read = false进行初始化,当它们持久化在领域中时,false值将覆盖先前存储的true值。

(据我所知,ObjectMapper不允许使用现有的模型对象并使用新的JSON值‘更新’或‘重新填充’它的值。)

您可以尝试以下几种方法。您可以尝试检索从JSON响应中创建的所有Messageread值,并在将新的read对象保存到领域之前更新它们的Message的值。另一种选择是在带外存储此信息:创建一个仅包含用户端信息(例如,消息ID和read标志)的新对象类,并将这些信息与Message对象一起存储在领域中。

票数 0
EN

Stack Overflow用户

发布于 2017-11-27 09:11:08

TL;DR:像这样声明变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@objc dynamic var name : String = ""

我使用的是AlamofireObjectMapper (5.0.0) Realm (3.0.2) RealmSwift (3.0.2)和iOS 11

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Category: Object, Mappable {
(...) 
    @objc dynamic var name : String = ""
(...)
}

一些视图控制器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lazy var categories: Results<Category> = { self.realm.objects(Category.self) }()

如果没有动态类别,则会打印除categories[indexPath.row].name之外的所有内容"“

当我将dynamic添加到变量声明中时,一切都很正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37919011

复制
相关文章
安卓系统如何在WIFI里设置s5静态Ip
在 Android 设备上使用 Wi-Fi Settings 设置s5的详细教程:
华科云商小徐
2023/10/18
3050
【谷歌】停止与华为合作,限制华为使用安卓系统
据报道,在特朗普政府公布“黑名单”后,谷歌(Google)已暂停与华为的部分合作。
老九君
2019/05/22
2.8K0
安卓自启动设置
最近搞一个项目,是安卓的客户端;要求安卓启动后自动启动。本来想通过外挂进行系统启动时自动启动,但发现大多不能用。于是只能在代码级进行处理。处理如下:
谭广健
2019/07/06
1.6K0
安卓自启动设置
「技巧」安卓设置 Equalizer
工作与音乐相关的,所以避免不了工作中要涉及到 Equalizer 。中文叫均衡器,缩写就是 EQ,和情商的缩写一样。我先抛砖引玉,说直白点就是把声音优化来更好听。我直接搬移一段维基百科的说明,这个才是专业的解释。
叉叉敌
2019/07/02
1.3K0
安卓系统框架介绍(安卓常用框架)
——源码地址1: https://android.googlesource.com/
全栈程序员站长
2022/07/30
8.7K0
安卓系统框架介绍(安卓常用框架)
appinventor安卓壁纸设置(上)
初步功能需求 打开安卓app,然后会看到一张内置好的图片,点击下方的设置壁纸,实现让这个图片成为壁纸的功能,实现方法调用安卓系统内置的壁纸设置工具。
泽泽社长
2023/04/17
8940
appinventor安卓壁纸设置(上)
WebRTC 如何在安卓系统上采集视频数据
WebRTC 作为一个开源的实时音视频通讯方案,经过多年的发展基本上已经支持了所有的常用终端,比如 windows、mac、Android、iOS等。我们都知道音视频通讯的前提是采集本地的音频和视频数据信息。今天,我们就来先了解一下 WebRTC 在安卓端是如何采集视频信号的。
liuzhen007
2022/02/23
2.7K0
WebRTC 如何在安卓系统上采集视频数据
安卓系统usb调试在哪_安卓手机的usb调试
Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件、下载应用或ROOT等,都需要打开手机的USB调试模式。安卓系统的版本有很多,它们的打开方法也各不相同,下面给大家介绍各版本安卓手机打开USB调试模式的方法。
全栈程序员站长
2022/09/30
3.9K0
Android--SVG在安卓系统中的应用
通过使用它的Path标签,几乎可以实现SVG中的其它所有标签,虽然可能会复杂一点,但这些东西都是可以通过工具来完成的,所以,不用担心写起来会很复杂。
aruba
2020/07/03
2.8K0
安卓开发-设置RadioButton的点击效果
在安卓开发中用到底部菜单栏 需要用到RadioButton这个组件  实际应用的过程中,需要对按钮进行点击,为了让用户知道是否点击可这个按钮,可以设置点击后 ,该按钮的颜色或者背景发生变化。 layout中这部分的代码为: 1 <RadioButton 2 android:id="@+id/radio_button0" 3 android:layout_height="fill_parent" 4 an
听着music睡
2018/05/18
1.5K0
安卓中的数据存取
在我们每天使用的手机设备中,无时无刻都在进行着数据的存和取。安卓作为一种手机操作系统,提供了如下方式的数据存取方式:Preference,File,Sqlite和网络,可以根据程序的实际需求选择合适的存取方式。
牛老师讲GIS
2018/10/23
1.3K0
安卓中的数据存取
鸿蒙系统与安卓系统的区别
华为鸿蒙已经发布快一年了,但是经常还有小伙伴说,鸿蒙不就是安卓系统套个壳么?类似小米的米UI和华为自有的EMUI。 我们不可否认鸿蒙2.0系统跟安卓的界面确实很相似,但就因此判定鸿蒙系统是安卓换皮了吗? 都知道鸿蒙系统跟安卓一样,采用的是AOSP 开源代码,而安卓自身超过80%的代码都来自于开源项目,谁也不能说谁在换皮吧? 长期以来,谷歌Android和苹果iOS系统占据了全球移动端操作系统的绝大多数市场份额,除了苹果的IOS以外,其他手机基本使用的就是安卓系统,当然,鸿蒙推出以后就三分天下啦。 对于很多
老九君
2022/04/29
5.5K0
鸿蒙系统与安卓系统的区别
安卓设置均衡器 Equalizer
工作与音乐相关的,所以避免不了工作中要涉及到 Equalizer 。中文叫均衡器,缩写就是 EQ,和情商的缩写一样。我先抛砖引玉,说直白点就是把声音优化来更好听。我直接搬移一段维基百科的说明,这个才是专业的解释。
叉叉敌
2019/07/03
2.1K0
安卓 topic-UI-设置 settings
应用通常包括允许用户修改应用特性和行为的设置。例如,有些应用允许用户指定是否启用通知,或指定应用与云端同步数据的频率。
acc8226
2022/05/17
3.1K0
安卓 topic-UI-设置 settings
安卓再现系统广播高危漏洞,影响99.9%安卓手机
近日,有博客披露安卓系统存在安卓系统广播漏洞,99.9%的安卓手机将面临安全威胁。恶意程序利用该漏洞,可伪造任意内容的手机短信,及致手机死机,甚至可将手机恢复出厂设置(所有数据将被擦除)。该漏洞目前影响5.0版本以下99.9%的安卓系统手机。 安全专家研究发现,谷歌在刚刚发布的安卓系统5.0(Lolipop)中悄悄修复了一项高危漏洞,“利用该漏洞,可以发送任意广播:不仅可以发送系统保护级别的广播、还可以无视receiver的android:exported=false、android:permisson
安恒信息
2018/04/10
3.3K0
安卓再现系统广播高危漏洞,影响99.9%安卓手机
【安卓笔记】高速的发展设置界面—–PreferenceActivity
通常做法是自定义布局,然后在代码里面加入响应函数,并将结果保存到Sharedpreferences中。
全栈程序员站长
2022/07/11
4700
【安卓笔记】高速的发展设置界面—–PreferenceActivity
安卓模拟器怎么设置代理
app开发测试的同学为了调试方便,通常会在电脑上装一些android模拟器,开多台进行测试。调试中通常要干的一件事就是抓取,那么想要抓包,我们必须要设置代理。
周小董
2019/03/25
12.6K2
安卓模拟器怎么设置代理
浅谈安卓中的MVP模式
端午放假,天气下雨,于是乎在家撸一下博客,本篇博客将为大家解析MVP模式在安卓中的应用。
老马的编程之旅
2022/06/22
9860
浅谈安卓中的MVP模式
安卓仓库管理系统源码
大等于jdk1.8,大于mysql5.5,idea(eclipse),Android Studio
淘毕设
2022/07/17
2.3K0
浅谈安卓系统上的DSU loader
什么是DSU loader? dsu loader即 动态系统更新可以在使用动态分区的安卓设备上,不影响原来系统的同时安装一个副系统,用于体验最新的原生安卓系统(AOSP)(博主评:相比传统刷机模式,
Tianli
2023/03/03
12.9K0

相似问题

如何在EditText安卓系统中设置默认游标?

22

安卓系统中的EditText?

21

安卓系统中的EditText

32

限制EditText在安卓系统中只接受Urls

20

如何在安卓系统中使用InputFilter限制EditText中的字符?

19241
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文