2014-09-24 40 views
0

我想在Swift中使用Predicate查询我的Azure移动服务。 但是,我正在执行查询并且没有任何返回。即使我将列名更改为不存在的列名,我也不会从Azure移动服务返回任何错误消息,也不会检索任何记录。在Swift中使用谓词从Azure移动服务查询表

是否有人能够发现我在这里做什么显然不对?欣赏你可以给的任何指导。这里是一些相关的代码:

var usersTable : MSTable? 
var records = [NSDictionary]() 
let userID = UIDevice().identifierForVendor.UUIDString 
let userCheckPredicate = NSPredicate(format: "userid == %@", userID) 
usersTable!.readWithPredicate(userCheckPredicate) { 
      result, totalCount, error in 

    if error != nil { 
       println("Error: " + error.description) 
       return 
      } 
    records = result as [NSDictionary] 
    println("Information: retrieved %d records", result.count) 

我也尝试用单引号括住%@,没有不同的结果。

回答

0

NSPredicate语法不正确。

我的谓语需要说:

let userCheckPredicate = NSPredicate(format: "userid == [c] %@", userID) 
+0

嗨,我们能断定的日期,说拿到物品后仅最近两天的NSDate *现在= [NSDate的日期] NSDate * twoDaysAgo = [now dateByAddingTimeInterval:-2 * 24 * 60 * 60]; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@“yyyy-MM-dd'T'HH:mm:ssZ”]; NSString * toString = [dateFormatter stringFromDate:twoDaysAgo]; NSPredicate * predicate = [NSPredicate predicateWithFormat:@“(updatedAt> =%@)”,toString];但我从Azure服务获得错误找到操作符类型'Edm.DateTimeOffset'和'Edm.String',用于运算符类'GreaterThanOrEqual'。 – 2016-01-20 15:31:43

+0

Arun Gupta。 let predicate = NSPredicate(format:“eventToDate>%@”,argumentArray:[Date()])。 Oyvind Vik。你的原始谓词适用于我,不知道为什么你必须改变它... – Jeff 2017-09-04 18:05:20