Ich gehe einige ähnliche Fragen durch, kann aber immer noch nicht herausfinden, warum dies geschieht.swift Wert des Typs '[Liquor]' kann nicht in den erwarteten Argumenttyp 'inout _' konvertiert werden
var liquors = [Liquor]()
func loadSampleLiquors(){
let photo1 = UIImage(named: "Chateau Lafite Rothschild 1993")
let liquor1 = Liquor(name: "Chateau Lafite Rothschild", year: "1993", photo: photo1, rating: 7)
liquors += [liquor1] // Here is the error happen
}
die Fehler messageis: Wert kann nicht vom Typ ‚[Liquor]‘ zu erwarteten Argumenttyp umwandeln ‚inout _‘
Dies ist wahrscheinlich, weil das „Jahr“ Null sein kann, aber ich gehe durch meine Code, dass es gut funktionieren sollte, ich versuche, es zu beheben mit "wenn Let Liköre = xxx", aber dann wird es eine EXC_BAD_INSTRUCTION auf der Dekodierungsfunktion, So poste ich alle meinen Code unter hier:
hier ist mein Alkohol Klasse:
var name: String
var year: String
var photo: UIImage?
var rating: Int
struct PropertyKey {
static let nameKey = "name"
static let yearKey = "year"
static let photoKey = "photo"
static let ratingKey = "rating"
}
Ich benutze NSCoding Daten zu speichern:
func encode(with aCoder: NSCoder) {
aCoder.encode(name, forKey: PropertyKey.nameKey)
aCoder.encode(year, forKey: PropertyKey.yearKey)
aCoder.encode(photo, forKey: PropertyKey.photoKey)
aCoder.encode(rating, forKey: PropertyKey.ratingKey)
}
required convenience init?(coder aDecoder: NSCoder) {
let name = aDecoder.decodeObject(forKey: PropertyKey.nameKey) as! String
let year = aDecoder.decodeObject(forKey: PropertyKey.yearKey) as! String
let photo = aDecoder.decodeObject(forKey: PropertyKey.photoKey) as? UIImage
let rating = aDecoder.decodeInteger(forKey: PropertyKey.ratingKey)
self.init(name: name, year:year, photo: photo, rating: rating)
}
Wo ist die Erklärung von 'Liköre'? – Alexander
@AlexanderMomchliov Ich füge es einfach hinzu – whatever123
Ich fragte nach der Erklärung von 'Liköre', nicht' Alkohol' – Alexander