2016-01-23 129 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框架(但是這僅僅適用於高容量如數學波形的工作) –