2016-07-08 46 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 
    } 
}