我尝试执行以下操作时,出现错误:“Type 'Ship'没有下标成员。”
var coor = ship[index]
我试图去做
var coor = ship?[index] as? Coordinate
但我收到了这个错误提示:"Cannot use optional chaining on non-optional value of type '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.shipCoors?[index]
。 - dancount
属性 getter 可以简写为return shipCoors?.count ?? 0
。顺便说一下。 - dan