数组数据插入

时间:2016-03-01 04:34:58

标签: ios arrays

假设我有两个共同的包

"基本套餐" &安培; "高级套餐"。

和两个视图。第一个显示当前包,另一个显示可用包。

例如。让我当前的计划是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帮助我的愚蠢逻辑?

1 个答案:

答案 0 :(得分:1)

func getLatestAvailablePackages() {

        availablePackage.removeAll()
        //...
}