2016-03-01 93 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

谢谢,应该这样做.. :) –