TableView中的Swift类成员

时间:2016-07-08 09:37:07

标签: swift tableview

我正在构建一个将各种数据显示在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
}

3 个答案:

答案 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
    }   
}