让说我有共同阵列数据插入
“基本服务包” &“高级套餐” 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”]。对我的愚蠢逻辑有什么帮助?
谢谢,应该这样做.. :) –