iOS Swift Parse - 数组中包含的键字符串无效

时间:2015-07-29 16:11:43

标签: ios arrays string swift parse-platform

我有这段代码用于向我的Parse数据库查询一些事件,Swift 1.2:

let keywordsArray = searchTxt.text.componentsSeparatedByString(" ") as [String]
// keywordsArray is an array made by separate words of a searchBar

// Make Parse query
eventsArray.removeAllObjects()
var query = PFQuery(className: "Events")
query.whereKey("keywords", containedIn: keywordsArray as [AnyObject])
query.findObjectsInBackgroundWithBlock { (objects, error)-> Void in

我确定Parse数据库中的关键字字段包含 keywordsArray 的每个字词,但结果始终为负数,该查询无法找到任何内容。 我用 println()仔细检查了数组中的单词,它们包含在我的Parse数据库中的 keywords 字段中,全部是小写字符串,因为我的搜索是searchBar中的文本是完全小写的。

那么这可能是一个Parse bug吗?我正在使用最新的Parse SDK。 我错过了那个查询中的内容吗?

谢谢!

修改

感谢您的回复,我会更好地解释。 完成处理程序中的对象填充一个名为eventsArray的NSMutableArray,它在调用查询之前由 .removeAllObjects 正确初始化。 控制台日志没有错误,也没有元素给阵列,所以没有对象,这是一个例子:

- Parse数据库中的关键字字段,Events类,包含一个句子,其中存在“棒球”和“事件”字样(全部为小写字样)。

-keywordsArray是由searchTxt中的2个单词创建的,实际上是棒球事件,所以控制台日志实际上给了我:

[棒球,活动]

keywordsArray 的项目。

所以我不明白为什么 eventsArray 在以下代码中显示的 for 循环后为空:

   let keywordsArray = searchTxt.text.componentsSeparatedByString(" ") as [String]
  println("\(keywordsArray)") // <- prints = [baseball, event]

    // Make a new Parse query
    eventsArray.removeAllObjects()
    var query = PFQuery(className: "Events")
    query.whereKey("keywords", containedIn: keywordsArray as [AnyObject])
   // query.whereKey(EVENTS_KEYWORDS, containsString: searchTxt.text!.lowercaseString) // <- this is try I made but it doesn't work either so I've commented it out

query.findObjectsInBackgroundWithBlock { (objects, error)-> Void in
       if error == nil {
         if let objects = objects as? [PFObject] {
              for object in objects {
                 self.eventsArray.addObject(object)
       } }

println("\(self.eventsArray)") // <- This array comes up empty and no error by Parse on the Console log...

0 个答案:

没有答案