2015-02-15 2 views
1

В приложении, которое я создаю, я пытаюсь отслеживать, какой индекс массива является текущим индексом. Отслеживание этой информации важно, так как это предотвратит избыточные вызовы API, если выбранный индекс совпадает с уже загруженным индексом.iOS - Постоянная переменная для отслеживания глобальных настроек

Я создал Struct со статическим var для отслеживания текущего индекса массива, однако он, кажется, удерживает значение только на одной странице приложения.

У моего приложения есть панель вкладок с 3 вкладками. На вкладке 1 это работает нормально, однако на вкладке 2 установлен параметр Struct var, однако, если я перехожу на вкладку 1 или 3, а затем обратно в 2, он возвращается к -1 (что является «значением по умолчанию»).

У меня есть Struct построен так:

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, что хорошо, однако после этого статический var Struct должен содержать текущий индекс.

Есть ли возможность глобально отслеживать индекс массива между всеми страницами приложения? Если Struct - это способ пойти, любая причина, по которой он не работает при загрузке каждой страницы?

ответ

0

Я получил это работает, выполнив следующие действия:

Мой Struct:

struct currentDefault { 
    static var playlistDefault:Int = -1 
    static var playerDefault:Int = -1 
} 

Мои viewWillAppear (разные структура вар на каждой вкладке):

override func viewWillAppear(animated:Bool) { 
    var index = Load.defaultEnterprise("defaultEnterprise") 
    if index != currentDefault.playlistDefault { 
     loadPlaylists() 
     currentDefault.playlistDefault = index 
    } 
} 

Я удалил «вар setIndex "с каждой страницы, так как я думаю, что создание var ссылается на Struct var, у которого значение по умолчанию МОЖЕТ наследовать значение по умолчанию, а не обновленное значение. Впрочем, это не совсем понятно.

Так или иначе, это то, что сработало.

Смежные вопросы