2016-03-01 3 views
1

Пусть говорят, у меня есть 2 пакета в общеймассив Вставка данных

"Базовый пакет" & "Advance Package".

И два вида. Первый показывает текущий пакет, а другой показывает доступные пакеты.

Eg.Let мой текущий план будет основным пакетом, и я переключился на Advance Package.So. В текущем пакете будет пакет Advance, а доступными планами будет Основной пакет. Этот пакет коммутаторов Async и Get Packages Process будет выполнять каждый время, которое он вызывает. После того, как я нажал кнопку «Переключить», он переключит пакет на сервере, а затем возвращает текущий статус пакета после успешного переключения пакета для обновления двух видов.

Итак, у меня действительно есть проблема, я использую представление выбора, чтобы показать доступные пакеты. Но после перехода на план и получения последнего плана он покажет мне [«Основной пакет», «Предварительный пакет»] в папке availablePackage. Фактически он должен показывать только один доступный пакет [«Основной пакет»] после того, как я переключусь на [«Предварительный пакет»] на текущем виде.

var basePackage : Results<PlanList>! 

var availablePackage : [String] = [] 

func removeDuplicates(array: [String]) -> [String] { 
    var encountered = Set<String>() 
    var result: [String] = [] 
    for value in array { 
     if encountered.contains(value) { 
      // Do not add a duplicate element. 
     } 
     else { 
      // Add value to the set. 
      encountered.insert(value) 
      // ... Append the value. 
      result.append(value) 
     } 
    } 
    return result 
} 

func getLatestAvailablePackages(){ 
    basePackage = realm.objects(PlanList).filter("currentPackage = '0'") // Current Packages 0 means inactive available packages 
    if basePlan.count > 0{ 
     for var i = 0 ; i < basePlan.count ; i++ { // Getting available packages and insert at switchArray to show at picker 
      availablePackage.insert(basePackage[i].packageName, atIndex: i) 

     } 
     availablePackage = removeDuplicates(availablePackage) 
    } 
} 

// After it complete switching plan at server,getting latest plan will do for updating the two views 
func didSuccessGettingPlan(results: JSON) { 
// Insertion into realm database after it get the packages of user subscribe/"0" means available package and "1" mean current subscribe package.  
//self.realmDBHelper.insertPackages(results) 
    getLatestAvailablePackages() 
} 

Процесс очищен. Об обновлении двух видов и значения выбора для выбора, если пользователь хочет изменить пакет.

Любая помощь?

Почему мой доступный пакет [«Основной пакет», «Предварительный пакет»] после переключения пользователя с Basic на Advance. Фактически, это должен быть [«Основной пакет»] в доступной массивеPackage. Любая помощь с моей глупой логикой?

ответ

1
func getLatestAvailablePackages() { 

     availablePackage.removeAll() 
     //... 
} 
+0

Спасибо, что должен это сделать .. :) –