比较和匹配数组值
问题描述:
当用户搜索类别时,我需要包含相同类别的所有数组出现+相应数组中的其他类别。比较和匹配数组值
一旦用户选择["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:
我有一个简单的分析查询功能。
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年1月23日15:53 :47.508 CC [28514:5733236] [错误]:$正则表达式仅在字符串字段上工作 (代码:102,版本:1.11.0)
没有whereKey
行,我得到所有的值,并打印出来。我只是无法弄清楚如何比较和检查两个数组之间的匹配,最终得到匹配的数组。有没有一个Swift方法呢?
答
你不应该使用containsString
而是containedIn
:
query.whereKey("contacts", containedIn: categoryArr)
非常感谢你。 – lukaivicev
除了这个已经很简单的答案之外,如果你想在实时(或者接近)的时候提高速度,那么最好咨询一下Accelerate框架(但是这仅仅适用于高容量如数学波形的工作) –