swift - 在 segue 之后处理任何可选的
问题描述
我还是 swift 语言的新手。经过一天的搜索,我不是来自以下。在 segue 之后,我将以下数据作为 Any? 目的。
Optional(<Hond: 0x604000297cf0> (entity: Hond; id: 0xd000000000080000 <x-coredata://9C4A92D6-5E7D-4633-827E-0E2BB6F005CA/Hond/p2> ; data: {
chipnummer = 0;
dierenarts = "";
geboortedatum = "2015-11-28 08:56:33 +0000";
geslacht = 0;
gewicht = 0;
hondId = "30A102CB-E0A5-49F1-ABAA-6E73CA32AF43";
kleur = "";
naam = Ravi;
orderID = 1;
plaatsVanChip = "";
schofthoogte = 0;
telefoonnummerDierenarts = "";
vachttype = ""; }))
现在我认为我必须将数据视为可选的,但这根本不起作用。现在我的问题是如何显示名称和日期等值?
import UIKit
import CoreData
class hondDetialView: UIViewController {
var hond:Any?
override func viewDidLoad() {
super.viewDidLoad()
//print(hond as Any)
if let eenWaarde = hond {
print(eenWaarde)
}
// Do any additional setup after loading the view.
}
感谢您的帮助 :)
解决方案
Any
是最坏的选择。
它是 Swift 中最不明确的类型。它告诉编译器I-have-no-idea-what-it-is。并且编译器不知道有像naam
and之类的属性geboortedatum
。
你知道类型是Hond
,所以声明属性
var hond: Hond?
甚至NSManagedObject
会比Any
。然后你可以写
if let eenWaarde = hond {
print(eenWaarde.naam)
}
如果 segue 总是发送一个Hond
实例,您甚至可以将该属性声明为隐式展开可选
var hond: Hond!
并省略可选绑定
print(hond.naam)
推荐阅读
- spring - 如何将 tx:annotation-driven 添加到 grails
- android - Android 应用程序输入数字输入刻度符号
- javascript - 有没有更好的方法来使用随机的开始和结束动画来制作复杂的动画?
- java - Project Lombok 是否与使用 getter 和 setter 的数据封装相矛盾?
- r - while循环内的矩阵条件
- firebase - Flutter 仅在 Firestore 的数组中创建 documentID 与 String 匹配的项目
- html - 由于高度,页脚位置错误:100%
- java - 如何在这个程序中正确读取和存储输入?
- sql - 如何连接来自同一个表的两列并在 SQL 中格式化新列
- python - 如何检查字典键?