NSPredicate IN来自数组元素的查询

时间:2016-02-03 21:30:51

标签: swift nspredicate

为一个古怪的头衔道歉。我有一个Ints数组,我想定义一个NSPredicate,它将过滤掉connectionType等于数组中包含的值的项目。

所以基本上是这样的:

var can = document.createElement("canvas");     
document.body.appendChild(can);
var width = window.innerWidth -20;
var height = (window.innerHeight - 80);    
can.width = width;
can.height = height;
//val dec = new raw.CSSStyleDeclaration()
var gc = can.getContext("2d");
//display.can.setProperty("borderColor", Colour.black.hexStr)
gc.fillStyle = "#AA5500";
gc.fillRect(0, 0, 200, 200);   
//dec.borderWidth = "2"
//display.can.style = dec

gc.strokeStyle = "#000000";
var strokeSize = 10;
var halfStroke = strokeSize / 2;
gc.lineWidth = strokeSize;
gc.strokeRect(0 + halfStroke,0 + halfStroke,width-strokeSize,height-strokeSize);

我发现了一些我认为处理这个问题的Objective C示例,但我刚刚进入iOS开发并且只使用了Swift,因此非常感谢一些帮助:)

我试过这样做:

fetchRequest.predicate = NSPredicate(format: "connectionType IN { all items in array }

但是,这会返回NSInvalidArgumentException。我觉得我很接近。

 fetchRequest.predicate = NSPredicate(format: "connectionType IN \(myIntArray)"

如果我执行以下操作:

NSInvalidArgumentException', reason: 'Unable to parse the format string "connectionType IN [28, 28]" 

我得到了这个错误:

fetchRequest.predicate = NSPredicate(format: "connectionType IN %@", myArray)

1 个答案:

答案 0 :(得分:18)

你可以构造一个这样的谓词:

NSPredicate(format:"connectionType IN %@", yourIntArray)

我希望这有用。