【问题标题】:Compare and Match Array Values比较和匹配数组值
【发布时间】:2016-01-23 16:13:15
【问题描述】:

当用户搜索一个类别时,我需要显示包含相同类别的所有数组 + 相应数组中的其他类别。

一旦用户选择了["Apples", "Oranges", "Limes"],我想比较我查询的哪个数组(在众多数组中)包含苹果、橙子或酸橙。这可以是一个数组,也可以是许多数组。

这些是我要向其中添加值的数组:

 var categoryNeeded = [AnyObject]()  //The user creates this one and adds values to it

 var categoryArr = [AnyObject]() //The Parse arrays are added here:

我有一个简单的 Parse 查询功能。

var query : PFQuery = PFUser.query()!
query.whereKey("contacts", containsString: "\(categoryArr)")
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in               
    if let objects = objects as [PFObject]! {
        for object in objects {            
            self.categoryArr.append(object["contacts"] as! AnyObject)
            print(self.categoryArr)
        }
    }
}

第二行可疑:

query.whereKey("contacts", containsString:  "\(categoryArr)")

使用该行查询时,我收到此错误(没有崩溃):

2016-01-23 15:53:47.508 CC[28514:5733236] [错误]:$regex 仅适用 在字符串字段上(代码:102,版本:1.11.0)

如果没有whereKey 行,我会得到所有值并打印它们。我只是不知道如何比较和检查最终给出匹配数组的两个数组之间的匹配。有没有 Swift 方法可以做到这一点?

【问题讨论】:

    标签: ios regex swift parse-platform


    【解决方案1】:

    你不应该使用containsString,而应该使用containedIn:

    query.whereKey("contacts", containedIn: categoryArr)
    

    【讨论】:

    • 只是对这个已经很简单的答案的补充,如果您想要实时(或尽可能接近)速度,那么最好咨询 Accelerate 框架(但这是几乎只适用于数学波形等大容量工作)
    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多