2016-03-01 100 views
1

讓說我有共同陣列數據插入

「基本服務包」 &「高級套餐」 2包。

和兩個視圖。第一個顯示當前包和另一個顯示可用包。

Eg.Let我目前的計劃將基本包,我切換到Advance Package.So,當前包是Advance Package,可用計劃將是Basic Package.That包Package 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() 
} 

過程很清楚。如果用戶想要更改包,則更新兩個視圖和選擇器值以供選擇。

任何幫助?

爲什麼我的availablePackage在用戶從Basic切換到Advance之後是[「Basic Package」,「Advance Package」]。實際上它應該是availablePackage數組中的[「Basic Package」]。對我的愚蠢邏輯有什麼幫助?

回答

1
func getLatestAvailablePackages() { 

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

謝謝,應該這樣做.. :) –