【发布时间】:2018-08-18 07:22:47
【问题描述】:
我是 Swift 新手,担心我在这里错误地定义了我的变量。我确定这是我犯的一个愚蠢的错误,因为我没有完全理解 Swift 语法。
当我在函数中引用我的用户类型没有任何下标成员时,我收到错误消息:
let item = userDataSource[indexPath.row]
cell.leftLabel.text = item[0]
cell.rightLabel.text = item[1]
但是,我正在扩展
extension AccountViewController: GetUserDelegate {
func getUserSuccess(user: User) {
self.userDataSource = [user]
}
}
并且userDataSource定义在类的顶部:
fileprivate var userDataSource: [User]
我没有正确地转换我的变量吗? User 模型只是一个映射的 JSON obj:
guard let user = Mapper<User>().map(JSONObject: value)
我在这里缺少什么?我是否正确地转换了我的变量?
这最终是我希望数组的外观:
["Name", "Bob Jim"],
["MC #", "1234567"],
["Company Name", "Bob's Truckin"],
["Truck Type", "Flat Bed"],
["Cell", "(555) 555-5555"],
["Dispatch", "(999) 999-9999"],
["Favorite Destinations", "Los Angeles"]
【问题讨论】:
-
两个问题。 1:如果我正确理解了您的问题,您有一个
User类和一个名为userDataSource的数组,它在您的类之外,旨在让您的所有用户保持正确? 2:委托到底是干什么用的? -
我有一个用户类,我想要一个 userDataSource,它是一个属性数组,用户项的名称作为 0 索引,值作为 1 索引。这部分代码不是我写的,所以我不太清楚为什么要写委托。
-
澄清一下,你想让
userData[0]给你User.name然后userData[1]给你User.value?那么value究竟是什么? -
不不,我希望 userData[0] 给我属性名称的值,而 userData[1] 给我该属性的值。很抱歉造成混乱。
-
我已经意识到,我认为我需要将用户对象转换为数组。