iOS Swift无法使用类型为参数的列表调用映射

时间:2018-12-12 20:28:17

标签: swift dictionary

我是xCode(Swift)开发中的新手,我正在尝试创建以下结构:

struct artistSection : Comparable {
  var artist : String
  var vinyls : [Vinyl]
  var collapsed : Bool

  static func group(vinyls : [Vinyl]) -> [artistSection] {
     let groups = Dictionary(grouping : vinyls) { (vinyl) -> String in
       return (vinyl.artist!)
     }
     return groups.map(artistSection.init(artist: vinyls: collapsed:)).sorted
  }
}

return.map出现以下错误:

  

无法使用类型为(((String,[Vinyl],Bool)-> VinylTableViewController.artistSection)

的参数列表调用'map'

1 个答案:

答案 0 :(得分:0)

您需要将输入参数提供给ArtistSection中的map的初始化程序。

struct ArtistSection:Comparable {
    var artist : String
    var vinyls : [Vinyl]
    var collapsed : Bool

    static func group(vinyls : [Vinyl]) -> [ArtistSection] {
        let groups = Dictionary(grouping : vinyls) { (vinyl) -> String in
            return (vinyl.artist!)
        }
        return groups.map({ArtistSection(artist: $0.key, vinyls: $0.value, collapsed: false)}).sorted()
    }
}

与错误无关,但还要确保您符合Swift命名约定,即类型(ArtistSection而不是artistSection的UpperCamelCase。