【问题标题】:Instance member cannot be used on type of custom class实例成员不能用于自定义类的类型
【发布时间】:2016-07-29 05:27:36
【问题描述】:

我有一个名为“威士忌制造商”的课程,它只启动新的威士忌。现在我想在我的“WhiskyOverViewController”中添加新添加的威士忌。但我面临以下问题:

class WhiskyOverViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var tableView: UITableView!

var whiskyArray = [WhiskyBuilder]()
let stringArray = whiskyArray.map({$0.whiskyName!})
var whiskies = [Character: [String]]()
var objectsArray = [Object]()

在“stringArray”行中,我收到错误“Instance member 'whiskyArray' cannot be used on type 'WhiskyOverViewController'。为什么我不能在那里使用whiskyArray-variable?

提前感谢您的帮助

【问题讨论】:

    标签: swift instances


    【解决方案1】:

    你需要的是一个只读的计算属性:

    var stringArray: [String] { 
        return whiskyArray.map{$0.whiskyName!} 
    }
    

    【讨论】:

      【解决方案2】:

      您需要将此代码移动到函数中:

      let stringArray = whiskyArray.map({$0.whiskyName!})
      

      【讨论】:

        【解决方案3】:

        这两种类型必须互不兼容。就像您不能将 UIImage 分配给 String 一样,您的程序不会让您将 [WhiskyBuilder] 数组类型分配给 WhiskyOverViewController 类型。您必须在全局范围内声明 stringArray,否则 Swift 会推断其类型。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-27
          • 2016-05-23
          • 2016-01-01
          • 2016-09-09
          • 2020-04-07
          • 2020-01-16
          • 2017-06-25
          相关资源
          最近更新 更多