我正在构建一个将各种数据显示在tableView中的应用程序。
我想创建从类继承的变量并将它们显示在tableView中。
这是我的班级档案:
import Foundation
import UIKit
class Shops {
private var _shopName: String!
private var _shopOpeningWD: String!
private var _shopOpeningSat: String!
private var _shopOpeningSun: String!
private var _shopLogo: UIImage!
init(shopName: String , shopOpeningWD: String ,shopOpeningSat: String,shopOpeningSun: String, shopLogo: UIImage ) {
self._shopName = shopName
self._shopOpeningWD = shopOpeningWD
self._shopOpeningSat = shopOpeningSat
self._shopOpeningSun = shopOpeningSun
}
}
这是我想要从中获取数据的文件:
import Foundation
import UIKit
var amazon = Shops(shopName: "amazon", shopOpeningWD: "Monday - Friday : 9:00 - 21:00", shopOpeningSat: "Saturday: 10:30 - 20:00", shopOpeningSun: "Sunday: 10:30 - 15:00 ", shopLogo:UIImage(named: "shopLogo")!)
var pcParts = Shops(shopName: "pcParts", shopOpeningWD: "Monday - Friday : 9:00 - 20:00", shopOpeningSat: "Saturday: 10:30 - 20:00", shopOpeningSun: "Sunday: 10:30 - 15:00 ", shopLogo: UIImage(named: "shopLogo")!)
var newEgg = Shops(shopName: "newEgg", shopOpeningWD: "Monday - Friday: 9:00 - 21:00", shopOpeningSat: "Saturday: 10:30 - 20:00", shopOpeningSun: "Sunday: 10:30 - 15:00 ", shopLogo: UIImage(named: "shopLogo")!)
这是我在viewController中创建的函数(tableView所在的位置)
func populateArray() -> Array <Shops> {
var array = [Shops]()
array.append(amazon)
array.append(pcParts)
array.append(newegg)
return array
}
该函数在viewDidLoad中调用。 我创建了一个抓取数组值
的变量var newArray : [Shops] {
return populateArray()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return newArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tabel.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! CustomCell
cell.shopName =
如何将类变量放入cellForRowAtIndexPath函数? 当我尝试编写cell.shopName = newArray.shopName ...
时,我不会获得自动完成功能。提前致谢。 正如你所看到的,我试图学习如此怜悯:)
管理解决问题:
我没有从私有变量中获取值:
我将此添加到我的类文件中。
var shopName: String {
return _shopName
}
var shopOpeningWD: String {
return _shopOpeningWD
}
var shopOpeningSat: String {
return _shopOpeningSat
}
var shopOpeningSun : String {
return _shopOpeningSun
}
答案 0 :(得分:0)
使用cellForRowAtIndexPath
let item = newArray[indexPath.row]
print("\(item._shopName)")
答案 1 :(得分:0)
您可以将这些变量放入一个类中。
class HoursHandler: NSObject {
var amazon = Shops(shopName: "amazon", shopOpeningWD: "Monday - Friday : 9:00 - 21:00", shopOpeningSat: "Saturday: 10:30 - 20:00", shopOpeningSun: "Sunday: 10:30 - 15:00 ", shopLogo:UIImage(named: "shopLogo")!)
var pcParts = Shops(shopName: "pcParts", shopOpeningWD: "Monday - Friday : 9:00 - 20:00", shopOpeningSat: "Saturday: 10:30 - 20:00", shopOpeningSun: "Sunday: 10:30 - 15:00 ", shopLogo: UIImage(named: "shopLogo")!)
var newEgg = Shops(shopName: "newEgg", shopOpeningWD: "Monday - Friday: 9:00 - 21:00", shopOpeningSat: "Saturday: 10:30 - 20:00", shopOpeningSun: "Sunday: 10:30 - 15:00 ", shopLogo: UIImage(named: "shopLogo")!)
}
答案 2 :(得分:0)
不要将私有支持的变量用作 alibi 作为只读属性。
使用常量:
class Shops {
let shopName: String
let shopOpeningWD: String
let shopOpeningSat: String
let shopOpeningSun: String
let shopLogo: UIImage
init(shopName: String , shopOpeningWD: String ,shopOpeningSat: String,shopOpeningSun: String, shopLogo: UIImage ) {
self.shopName = shopName
self.shopOpeningWD = shopOpeningWD
self.shopOpeningSat = shopOpeningSat
self.shopOpeningSun = shopOpeningSun
self.shopLogo = shopLogo
}
}