创建 UIImages 数组的问题

Issue creating an array of UIImages

我正在尝试创建一个 UIImage 数组,但出现错误:

TableViewController.type does not have a member named squatImage

我正在尝试创建一个数组,以便我可以将不同的图像添加到我拥有的 tableView 的每个单元格中。

相关代码如下:

class TableViewController: UITableViewController {
    var selectedIndexPath : NSIndexPath?
    var tableData = ["Squats","Bench Press","Bent Over Row","Barbell Shrugs","Tricep Extensions","Straight Bar","Hyperextensions","Cable Crunches"]


    var squatImage = UIImage(named:"First.png")!
    var squatImage2 = UIImage(named:"Second.png")!

    var tableImages: [UIImage] = [squatImage, squatImage2]



    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 8
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(cellID, forIndexPath: indexPath) as! PickerTableViewCell
        cell.titleLabel?.text = self.tableData[indexPath.row]
//        cell.imageView.image = "First.png"

        return cell
    }

您的问题在这一行:

var tableImages: [UIImage] = [squatImage, squatImage2]

您正在尝试访问成员变量 squatImage(和 squatImage2),在 Swift 有机会知道 squatImage 实际上定义为您 TableViewController class.

的成员

如果您改为在 viewDidLoad 方法中定义 tableImages 数组(即在运行时),您的代码将起作用。

解决方案 1: 不要单独定义 UIImage,而是这样做:

 var tableImages: [UIImage] = [UIImage(named:"First.png")!, UIImage(named:"Second.png")!]

解决方法二:如果你想单独设置图片然后插入到数组中那么定义一个空数组:

  var squatImage = UIImage(named:"First.png")!
  var squatImage2 = UIImage(named:"Second.png")!

  var tableImages: [UIImage] = []


    override func viewDidLoad() {
        super.viewDidLoad()
      tableImages = [squatImage,squatImage2]
        // Do any additional setup after loading the view.
    }