2016-07-08 47 views
-2

我正在构建一个将各种数据显示到tableView的应用程序。TableView中的Swift类成员

我想创建从类继承的变量,并将它们显示在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时,我没有自动完成...

在此先感谢。 正如你所看到的,我努力学习,以便怜悯:)

设法解决这个问题:

我没有从私有变量获得的价值:

我加入这个到我的Class文件。

var shopName: String { 
    return _shopName 
} 

var shopOpeningWD: String { 
    return _shopOpeningWD 
} 

var shopOpeningSat: String { 
    return _shopOpeningSat 
} 

var shopOpeningSun : String { 
    return _shopOpeningSun 
} 

回答

0

使用下面的代码在cellForRowAtIndexPath

let item = newArray[indexPath.row] 
print("\(item._shopName)") 
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")!) 

} 
0

不使用私人支持变量作为托辞为只读属性。

使用常数

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