Ios 如何修复以下错误:“quot;对成员'的模糊引用;下标'&引用;这会出现在我的代码中吗?

Ios 如何修复以下错误:“quot;对成员'的模糊引用;下标'&引用;这会出现在我的代码中吗?,ios,swift,Ios,Swift,我正在尝试使用字典函数init(grouping:by:)对我的事件数组按事件\类别进行分组,该函数在groupedEventArray中初始化。 但是,当我试图访问TableView的数据源cellForRowAt中的let(category,events)=groupedEventArray[indexPath.row]时,它会导致一个错误:对成员“subscript”的引用不明确。 以下是我正在尝试的示例代码: var events = [Events]() var gr

我正在尝试使用字典函数
init(grouping:by:)
对我的事件数组按事件\类别进行分组,该函数在groupedEventArray中初始化。 但是,当我试图访问TableView的数据源cellForRowAt中的
let(category,events)=groupedEventArray[indexPath.row]
时,它会导致一个错误:对成员“subscript”的引用不明确。

以下是我正在尝试的示例代码:

    var events = [Events]()

    var groupedEventArray = [Any]()

    var testEvent1 = Events(id: 1, event_name: "PrototypeEvent", event_category: "Party", event_date: "10/06/19", event_img_url: "null")

    var testEvent2 = Events(id: 2, event_name: "PrototypeEvent2", event_category: "Music", event_date: "11/06/19", event_img_url: "null")

    override func viewDidLoad() {
        super.viewDidLoad()

        events.append(testEvent1)

        events.append(testEvent2)

        groupedEventArray = Dictionary(grouping: events) { $0.event_category }.compactMap({( $0.key, $0.value )})
        print(groupedEventArray)

    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return groupedEventArray.count
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 245
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "PopularCell", for: indexPath) as! PopularCell
        let (category, events) = groupedEventArray[indexPath.row] // Error : Ambiguous reference to member 'subscript'

        return cell
    }

将您的
groupedEventArray
声明为类型
Dictionary

并使用事件类别类型访问它

let partyEvents = groupedEventArray["Party"]

在这里,由于您将
groupedEventArray
作为
Any
的数组,因此无法将其下标指定给元组。要修复此错误,请将数组的类型更改为元组本身

即, 只要像这样换一行就行了

var groupedEventArray = [(String, [Events])]()

一切都保持不变。

事件
已更改为
UIEvents
。您使用的是哪种swift版本?可能重复的请不要问重复的问题。
let partyEvents = groupedEventArray["Party"]
var groupedEventArray = [(String, [Events])]()