【发布时间】:2020-08-14 08:44:09
【问题描述】:
我想调用函数并给定一个类型,让不同的数组附加来自 API 的数据。我已经打印出计数,但 customerViewData 仍然有 0 个元素,而 selectCustomerListViewData 有 10 个元素。似乎 selectCustomerListViewData = customerViewData 不像我想的那样工作。对于这种情况,如何在正确的数组中添加元素?我知道我可以创建 3 个函数来解决这个问题。
class CustomerListViewData{
var customer_id: String = ""
var name: String = ""
var image: String = ""
var birthday: String = ""
var age: String = ""
var gender: String = ""
var mobile: String = ""
var identityNumber: String = ""
var isSelected: Bool = false
var isChanged: Bool = false
}
func getCustomerViewData(type: String)->[CustomerListViewData]{
var selectCustomerListViewData: [CustomerListViewData]
var selectCustomerRawData: GetCustomerResponse?
switch type {
case "1":
selectCustomerListViewData = customerViewData
selectCustomerRawData = customerRawData
break
case "2":
selectCustomerListViewData = searchCustomerViewData
selectCustomerRawData = searchCustomerRawData
break
default:
selectCustomerListViewData = notificationCustomerViewData
selectCustomerRawData = notificationCustomerRawData
break
}
if let customerList = selectCustomerRawData?.customerList{
for each in customerList{
let customer = CustomerListViewData(each.customer_id, each.name, each.image ?? "", each.birthday, calculateAge(birthday: each.birthday), each.gender, each.spikeStatus, each.mobile ?? "", each.identityNumber ?? "")
selectCustomerListViewData.append(customer)
}
}
print("\(customerViewData.count)")
print("\(selectCustomerListViewData.count)")
return selectCustomerListViewData
}
【问题讨论】:
-
不清楚您的问题是什么,因为我们不知道您使用的所有这些属性是什么,而且问题也不清楚。您说 customerListViewData.count 是 0 但您没有打印它,而是打印 customerViewData.count 以及 customerListViewData 是什么,因为它不是您发布的代码的一部分。澄清您的问题并可能添加一些测试数据,以便我们拥有可重现的东西
-
不相关,但这是 Swift:
switch案例中没有break语句(除非立即退出default案例) -
@JoakimDanielson 抱歉,有错字。
-
selectCustomerListViewData 从 selectCustomerRawData 获取它的数据,因此无法清楚它是如何相关的,或者 customerViewData 为空的问题。这个问题缺少很多信息。
-
我添加了一个开关盒,并在我的函数末尾使用“+= selectCustomerListViewData”到实际数组。它解决了我的问题!
标签: arrays swift switch-statement