Der Compiler führt den Fehler, wenn Sie einen neuen Wert zuweisen versuchen:Kann nicht zu unveränderlichen Ausdruck des Typs 'Bool?'
Cannot assign to immutable expression of type 'Bool?'
ich eine Klasse haben:
class Setting {
struct Item {
var text: String
var selected: Bool?
init(withText text: String) {
self.text = text
self.selected = nil
}
var items: Any
init(items:Any) {
self.items = items
}
}
Im Quelle-View-Controller in prepareForSegue
:
let item = Setting.Item(withText: user.description)
let setting = Setting(items: [item])
destinationViewController.setting = setting
Im Ziel View-Controller:
class DestinationViewController: UITableViewController {
var setting: Setting!
override func viewDidLoad() {
super.viewDidLoad()
//this works
_ = (setting.items as! [Setting.Item])[index].selected
// this throws the error
(setting.items as! [Setting.Item])[index].selected = false
}
}
Ich habe Artikel als Beliebige deklariert, da sie entweder [Artikel] oder [Artikel] enthalten können.
Wie kann ich die Variable selected
veränderbar machen?
(Ich hoffe, das kein Duplikat Frage ist, dass ich viele ähnliche Fragen gefunden, aber diese nicht lösen konnte.)
Also muß ich glaube, ich 'var Artikel erklären: [[Artikel]]' . Danke matt – Manuel