gpt4 book ai didi

ios - 无法使用类型为 '[Int : [String]]' 的索引下标类型为 'String!' 的值

转载 作者:行者123 更新时间:2023-11-29 01:11:37 25 4
gpt4 key购买 nike

请问我错在哪里?我有 Xcode 错误:

Cannot subscript a value of type '[Int : [String]]' with an index of type 'String!'

在 let keyExists = myDict[tmp.Hour] != nil, myDict[tmp.Hour] = Int 和 myDict[tmp.Hour].append(tmp.Minutes) 这部分代码中:

func array() -> Dictionary <Int,[String]>
{

let timeInfos = getTimeForEachBusStop()

var myDict: Dictionary = [Int:[String]]()


for tmp in timeInfos {

let keyExists = myDict[tmp.Hour] != nil
if (!keyExists) {
myDict[tmp.Hour] = [Int]()
}
myDict[tmp.Hour].append(tmp.Minutes)
}
return myDict
}

我明白,该问题是可选类型,但我不明白问题在哪里

更新

 func getTimeForEachBusStop() -> NSMutableArray {

sharedInstance.database!.open()
let lineId = getIdRoute

let position = getSelectedBusStop.row + 1


let getTimeBusStop: FMResultSet! = sharedInstance.database!.executeQuery("SELECT one.hour, one.minute FROM shedule AS one JOIN routetobusstop AS two ON one.busStop_id = (SELECT two.busStop_id WHERE two.line_id = ? AND two.position = ?) AND one.day = 1 AND one.line_id = ? ORDER BY one.position ASC ", withArgumentsInArray: [lineId, position, lineId])


let getBusStopInfo : NSMutableArray = NSMutableArray()

while getTimeBusStop.next() {

let stopInfo: TimeInfo = TimeInfo()
stopInfo.Hour = getTimeBusStop.stringForColumnIndex(0)
stopInfo.Minutes = getTimeBusStop.stringForColumnIndex(1)
getBusStopInfo.addObject(stopInfo)

}
sharedInstance.database!.close()
return getBusStopInfo

}

最佳答案

您将字典声明为具有 Int 类型键和 [String] 类型值的字典:

var myDict: Dictionary = [Int:[String]]()

(最好写成:var myDict: [Int: [String]] = [:] 因为通过将其转换为 Dictionary 您将删除类型)。

然而,在

myDict[tmp.Hour] = [Int]()

您正在使用一个 [Int] 类型的值,tmp.Hour 可能是一个 String

所以,您的问题是类型不匹配。

关于ios - 无法使用类型为 '[Int : [String]]' 的索引下标类型为 'String!' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35685654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com