【发布时间】:2021-12-28 18:53:45
【问题描述】:
我有 2 个类 (A,B),它们的属性是另一个类 (C) 的实例。 C 类具有一些值的属性(无论是什么类型)。 A类具有从/向C删除和附加对象的方法。B类具有从C类返回对象的方法。现在A类和B类有它们的视图,在A视图上,用户能够从C中附加和删除对象并每次查看更新当 C 发生变化时,视图 B 调用 B 类方法时出现从 C 加载对象,但方法返回 0 个对象。代码示例如下:
class C{
var property = [Something]
}
class A{
var c = C()
func appendOrremove(){
//... some action
}
}
class B{
var c = C()
func getProperty()->[Something]{
//... return property of c
}
}
我可以提供我遇到问题的确切代码,但它会比上面更多的代码。提前致谢!
好吧,我最好显示我的代码
class FavoriteBeers{
var favoriteBeers = [Beer]()
}
class BeersListInteractor:BeersListInteractorProtocol{
private var favoriteBeers = FavoriteBeers()
func addToFavorites(beer: Beer){
favoriteBeers.favoriteBeers.append(beer)
saveFavoriteBeers()
}
func removeFromFavorites(_ beer: Beer) {
favoriteBeers.favoriteBeers.removeAll { $0 == beer }
saveFavoriteBeers()
}
}
class FavoriteBeersInteractor:FavoriteBeersInteractorProtocol{
private var favoriteBeers = FavoriteBeers()
func getFavoriteBeers()-> [Beer]{
return favoriteBeers.favoriteBeers
}
}
【问题讨论】:
-
类 A 和 B 有自己的 C 实例,这是故意的还是应该有相同的实例?
-
听起来你不明白什么是类和实例?如果你想快乐地编写 Swift,这非常重要。
-
@Andrew 我只是希望 A 类所做的更改会影响 B 类方法的返回值