在数组中查找itemIdentifier UUID

时间:2018-01-13 11:49:23

标签: swift swift4

我有一系列项目,例如:

[
    [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下面有一条红线。

我做错了什么以及为什么?

1 个答案:

答案 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类型。