在一个应用程序中,我试图跟踪数组的哪个索引是当前索引。跟踪此信息非常重要,如果所选索引与已加载的索引相同,它将阻止冗余API调用。
我使用静态var创建了一个Struct来跟踪当前数组索引,但它似乎只保留应用程序的一个页面上的值。
我的应用有一个带有3个标签的标签栏。在选项卡1上,这工作正常,但是在选项卡2上,Struct var得到设置,但是如果我转到选项卡1或3然后回到2,它将返回-1(这是"默认"。)
我的结构是这样构建的:
struct currentDefault {
static var cDefault:Int = -1
}
然后我在每个页面上创建它:
var setIndex = currentDefault.cDefault
我的检查功能在每页上看起来都相同:
override func viewWillAppear(animated:Bool) {
var index = Load.defaultEnterprise("defaultEnterprise")
if index != self.setIndex || self.setIndex == -1 {
loadPlayerList()
currentDefault.cDefault = index
}
}
在上面的例子中,"索引"从用户的当前默认设置加载。 在初始页面上,setIndex将为-1,这很好,但在此之后,Struct的静态var应保存当前索引。
是否有更好的全局跟踪应用程序的所有页面之间的数组索引?如果一个Struct是要走的路,那么它在每个页面上的默认负载的原因是什么?
答案 0 :(得分:0)
我通过以下方式开展工作:
我的结构:
struct currentDefault {
static var playlistDefault:Int = -1
static var playerDefault:Int = -1
}
我的viewWillAppear(每个标签上的不同struct var):
override func viewWillAppear(animated:Bool) {
var index = Load.defaultEnterprise("defaultEnterprise")
if index != currentDefault.playlistDefault {
loadPlaylists()
currentDefault.playlistDefault = index
}
}
我删除了" var setIndex"从每个页面开始,因为我认为创建一个var引用具有默认值的Struct var可以继承它的默认值而不是它的更新值。但不完全确定。
无论如何,那是有用的。