gpt4 book ai didi

ios - 类型没有下标成员?

转载 作者:IT王子 更新时间:2023-10-29 05:47:15 25 4
gpt4 key购买 nike

当我尝试执行以下操作时,我收到错误消息“Type 'Ship' has no subscript members:

var coor = ship[index]

我试过

var coor = ship?[index] as? Coordinate

但我收到此错误:“无法对‘Ship’类型的非可选值使用可选链接”

这是我的 Ship 类:

import Foundation

class Ship: NSObject, NSCoding {

var shipCoors: [Coordinate]?

var count: Int {
var count = 0
for _ in shipCoors! {
count++
}
return count
}

init(shipCoors: [Coordinate]) {
self.shipCoors = shipCoors
}

required init(coder decoder: NSCoder) {
self.shipCoors = decoder.decodeObjectForKey("shipCoors") as? [Coordinate]
}

func encodeWithCoder(coder: NSCoder) {
coder.encodeObject(shipCoors, forKey: "shipCoors")
}
}

Coordinate 类也是 NSObject、NSCoding 等类型...当我加载它们时,这些对象似乎在数组中(来自 NSUserDefaults)?我怎么把它们弄出来?!

最佳答案

将下标添加到您的 Ship 对象以返回可选的 Coordinate:

subscript(index: Int) -> Coordinate? {
guard let coordinate = shipCoors?[index] else {
return nil
}
return coordinate
}

shipCoors 声明为 [Coordinate]?(可选数组),因此 Ship 有可能没有数组在 shipCoors 中。在这种情况下,我返回 nil,但您可以返回任何您想要的。

关于ios - 类型没有下标成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36138139/

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