以下代碼拋出一個錯誤「不可變值的類型[用戶]只有變異成員名爲append」請指教。不可變的類型只有變異成員
庫或框架代碼(預編譯)的庫或框架代碼
class Database {
var data: Any? //can change this code but has to be a generic placeholder
init(data: Any?=nil) {
self.data = data
}
}
用戶
class User {
var first: String
var last: String
init(first: String, last:String) {
self.first = first
self.last = last
}
}
class Test: Database {
init() {
super.init(data: [User]())
}
func addItem(item: User) { //edit User type from Any but problem persists
(self.data as! [User]).append(item) //error
}
}
嘗試1,這似乎是工作,但仍然不知道爲什麼上面的代碼不起作用。
func addItem(item: User) {
var users = self.data as! [User]
users.append(item);
self.data = users;
}
不喜歡重新分配,如何在地方的可變性能夠
的問題是,你正在嘗試,嘗試使用'項目作爲User' – tkanzakic
還添加型Any'的'對象在User'的'數組有同樣的問題,我有兩塊代碼(庫+我的代碼)在操場上進行測試 – user2727195
數據是Any類型的。這不是一個數組。所以你不能使用append。 –