为一个古怪的头衔道歉。我有一个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)
答案 0 :(得分:18)
你可以构造一个这样的谓词:
NSPredicate(format:"connectionType IN %@", yourIntArray)
我希望这有用。