在我在Core Data中获取的字符串上获取额外的“Optional(”“)”是否正常?
这是代码
bowtie.name = "My bow tie"
bowtie.lastWorn = NSDate()
这就是我在xcode输出日志中获得的内容。
姓名:可选(“我的领结”),磨损:可选(2015-11-08 14:23:11 +0000)
有没有办法摆脱Optional(“”)的东西?
答案 0 :(得分:2)
每次强行打开Optional
(使用!
)小猫死亡。
有几种安全方式可以展开Optional
,例如使用if let
或flatMap
(即使它不是真正的flatMap
)。
在某些情况下,您可以使用“可选链接”,这样您就不必在实际操作之前处理Optional
。空合并运算符(??
)也非常有用。
This SO回答非常有帮助,你一定要看一下。
如果您想完全理解Optional
的概念,请查看the docs。
在这种特定情况下,我建议使用类似let fetchedName = bowtie.name ?? ""
的内容(或任何其他对您的问题有意义的后备字符串)。
当您强制解包时,由于某些奇怪的原因,该值为nil
,应用将崩溃。没有人喜欢崩溃,对吗?