2016-07-08 3 views
-2

Я создаю приложение, которое отображает различные данные в 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 
} 

ответ

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 
    } 
} 
Смежные вопросы