假设我有两个共同的包
"基本套餐" &安培; "高级套餐"。
和两个视图。第一个显示当前包,另一个显示可用包。
例如。让我当前的计划是Basic Package,然后我切换到Advance Package.So,当前的包将是Advance Package,可用的计划将是Basic Package.That Switch Package Async和Get Packages Process每次都会这样做单击“切换”按钮后,它会在服务器上切换包,然后在成功切换包后更新当前包状态,以便更新两个视图。
所以,我确实遇到了问题,我正在使用选择器视图来显示可用的包。但是,在切换计划并获得最新计划后,它会显示[" Basic Package","在可用包装上提前打包#34;]在我切换到["高级包"]时,它应该只显示一个可用包["基本包"]。
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是[&#34; Basic Package&#34;,&#34; Advance Package&#34;]用户从Basic切换到Advance。实际上它应该是[&#34; Basic Package&#34;在availablePackage array.Any帮助我的愚蠢逻辑?
答案 0 :(得分:1)
func getLatestAvailablePackages() {
availablePackage.removeAll()
//...
}