Swift &引用;“拆开包装”;从Firebase检索的数据
因此,我设法从Swift &引用;“拆开包装”;从Firebase检索的数据,swift,firebase,subscript,Swift,Firebase,Subscript,因此,我设法从Firebase中检索了一些数据,打印时如下所示: [餐厅.客户列表(键:“-LQLHEMNZB8KAHA9UCK”,客户列表名称: “肯德里克”,顾客名字:“安娜”,顾客吃:“100”, 客户订单:“面条”,时间戳:1541290545703.0)] 问题:如何展开它们,以便将单个值放入其他字符串变量中? 我尝试了很多方法,但我遇到了一些错误,例如如果我执行类似于let custName=self的操作,就不能用String类型的索引为[CustomerList]类型的值下标?字
Firebase
中检索了一些数据,打印时如下所示:
[餐厅.客户列表(键:“-LQLHEMNZB8KAHA9UCK”,客户列表名称:
“肯德里克”,顾客名字:“安娜”,顾客吃:“100”,
客户订单:“面条”,时间戳:1541290545703.0)]
问题:如何展开它们,以便将单个值放入其他字符串变量中?
我尝试了很多方法,但我遇到了一些错误,例如如果我执行类似于let custName=self的操作,就不能用String
类型的索引为[CustomerList]
类型的值下标?字符串
ps.CustomerList
是一个struct
pps。列表
的打印输出就是所显示的,因为您有一个客户列表
对象的列表,即[CustomerList]
,所以您应该首先从该列表
中获取一个对象。假设我们希望此列表中的第一个对象访问其属性,然后我们可以按如下所示进行操作
if let firstCustomer = self.list.first {
let firstName = firstCustomer.customerFirstName
let lastName = firstCustomer.customerLastName
}
let index = 0
let customer = self.list[index]
let firstName = customer.customerFirstName
let lastName = customer.customerLastName
let johny = self.list.filter{ $0.customerFirstName == "Jonhny"}.first {
print(johny.customerLastName)
}
let lastNamesArray = self.list.map({ $0.customerLastName })
如果要访问特定索引中的对象,可以执行以下操作:
if let firstCustomer = self.list.first {
let firstName = firstCustomer.customerFirstName
let lastName = firstCustomer.customerLastName
}
let index = 0
let customer = self.list[index]
let firstName = customer.customerFirstName
let lastName = customer.customerLastName
let johny = self.list.filter{ $0.customerFirstName == "Jonhny"}.first {
print(johny.customerLastName)
}
let lastNamesArray = self.list.map({ $0.customerLastName })
要查找特定的客户
,您可以筛选
,如下所示
if let firstCustomer = self.list.first {
let firstName = firstCustomer.customerFirstName
let lastName = firstCustomer.customerLastName
}
let index = 0
let customer = self.list[index]
let firstName = customer.customerFirstName
let lastName = customer.customerLastName
let johny = self.list.filter{ $0.customerFirstName == "Jonhny"}.first {
print(johny.customerLastName)
}
let lastNamesArray = self.list.map({ $0.customerLastName })
要获取从客户列表创建的自定义列表,您可以使用map
,如下所示
if let firstCustomer = self.list.first {
let firstName = firstCustomer.customerFirstName
let lastName = firstCustomer.customerLastName
}
let index = 0
let customer = self.list[index]
let firstName = customer.customerFirstName
let lastName = customer.customerLastName
let johny = self.list.filter{ $0.customerFirstName == "Jonhny"}.first {
print(johny.customerLastName)
}
let lastNamesArray = self.list.map({ $0.customerLastName })
哇,第一个解决了这个问题!非常感谢你!如果你不介意我问的话,“.first”在这个上下文中做什么?实际上它只是一个助手,可以获取数组的索引0
(第一个元素的索引)。愚蠢的问题,为什么我不能简单地使用list[0]要检索数据?@Tomiris如果数组中没有任何元素,并且尝试访问列表[0]
,它将抛出一个超出范围的错误索引。但是如果您先使用.first
,它将返回nil
。所以,如果您安全地打开列表。首先,它将永远不会崩溃。@Tomiris它有多奇怪.first
返回可选值,这意味着如果元素存在,它将返回该元素,否则nil
。这样想吧<代码>如果列表[0]存在,则返回列表[0],否则返回nil
。