【发布时间】:2016-07-08 09:08:37
【问题描述】:
当我尝试这样做时,我收到错误“类型'Ship'没有下标成员:
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.shipCoors?[index] -
您的
count属性获取器可以是return shipCoors?.count ?? 0顺便说一句。
标签: ios swift optional nscoding subscript