文档CIFilter
说该类不是线程安全的,并且“每个线程都必须创建自己的CIFilter
对象”。我正在这样做,但我仍然经常遇到错误的访问崩溃。导致崩溃的示例代码:
- (CIImage *) outputCIImage {
CIFilter *monochromeFilter =
[CIFilter filterWithName:@"CIColorMonochrome" keysAndValues:
kCIInputImageKey, self.inputCIImage,
@"inputColor", [LSMonochromeFilter CIColorForFilterColor:self.color],
@"inputIntensity",[NSNumber numberWithFloat:1.0], nil];
return monochromeFilter.outputImage;
}
最多可从 10 个线程并行调用此代码。我无法弄清楚原因,因为看起来CIFilter
线程之间的实例应该完全相互隔离。有任何想法吗?