2014-02-06 87 views
0

我想写一个查询,当id等于1(此刻)获取一行。查询与移动服务Azure iOS

NSPredicate *predicate = [NSPredicate predicateWithFormat:[apt[@"id"] isEqualToNumber:1]]; 

那么,id(从另一个数据库)等于1。现在这种抱怨各种各样的事情,但它说,它需要一个BOOL。 NSPredicate需要BOOL吗?

不知道我明白了,还是有另一种方式可以查询?我可以在Mobile Services SDK Azure for iOS中使用T-SQL吗?

回答

0

带格式的谓词需要一个字符串,你用一个bool发送。 [apt[@"id"] isEqualToNumber:1]返回一个布尔值。

以这种方式使用谓词(我没有格式化谓词的经验,所以这可能实际上并不适用于复制和粘贴)。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id == 1"]; 

如果您正在过滤的数组中的对象有一个名为id的属性,这将工作。

我理解一个更好的小东西就是带有块的谓词。这也可以适用于你(我不完全确定你的数据结构,所以你需要修改以适应你的需求。)

NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) { 
    return [object[@"id"] isEqualToNumber:1]; // Return YES for each object you want in filteredArray. 
}]