我有一系列项目,例如:
[
[notes: "notes", name: "name", createdAt: date, itemIdentifier: UUID],
[notes: "notes2", name: "name2", createdAt: date, itemIdentifier: UUID],
...
]
我想找到具有给定UUID的条目,例如738A31D9-2A5D-46DB-BEAF-0FCA017F4A2F
。
我找到名字的代码有效:
if let item = array.first(where: {$0.name == "name"}) {
// do something
print(item)
} else {
// item could not be found
}
但是为了找到给定的UUID,它不起作用。
if let item = array.first(where: {$0.itemIdentifier == 738A31D9-2A5D-46DB-BEAF-0FCA017F4A2F}) {
// do something
print(item)
} else {
// item could not be found
}
弹出的错误是:
预期整数文字前缀
后的数字
在738A31D9的A下面有一条红线。
我做错了什么以及为什么?
答案 0 :(得分:2)
好吧,你应该重写if
,如:
if let item = array.first(where: { $0.itemIdentifier == UUID(uuidString: "738A31D9-2A5D-46DB-BEAF-0FCA017F4A2F") }) {
// do something
print(item)
}
因为738A31D9-2A5D-46DB-BEAF-0FCA017F4A2F
值为UUID
类型。