2016-01-23 86 views
0

当用户搜索类别时,我需要包含相同类别的所有数组出现+相应数组中的其他类别。比较和匹配数组值

一旦用户选择["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方法呢?

回答

1

你不应该使用containsString而是containedIn

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

非常感谢你。 – lukaivicev

+1

除了这个已经很简单的答案之外,如果你想在实时(或者接近)的时候提高速度,那么最好咨询一下Accelerate框架(但是这仅仅适用于高容量如数学波形的工作) –