Ich erhalte die Fehlermeldung „Typ‚Schiff‘keinen Index Mitglieder hat, wenn ich versuche zu tun:Typ Hat keine tiefgestellten Mitglieder?
var coor = ship[index]
Ich versuchte
var coor = ship?[index] as? Coordinate
Aber ich diesen Fehler zu tun:“ Kann nicht optional Verkettungs verwenden auf nicht-optionalen Wert des Typs 'Schiff'“
Hier ist meine Ship
Klasse:
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")
}
}
Die Coordinate
Klasse ist auch vom Typ NSObject, NSCoding
, etc ... Die Objekte scheinen im Array zu sein, wenn ich sie (von NSUserDefaults
) laden? Wie bekomme ich sie raus ?!
Sie wollen 'ship.shipCoors?[index] ' – dan
Danke euch allen, war in der Lage, das Problem zu lösen! –
Ihr "count" -Eigenschaft-Getter kann einfach 'return shipCoors? .count ?? 0' zw. – dan