Настройка CIFilter в Swift

как перевести последнюю строку следующего кода ObjC в Swift:

CGAffineTransform transform = CGAffineTransformIdentity;
CIFilter *clampFilter = [CIFilter filterWithName:@"CIAffineClamp"];

[clampFilter setValue:[NSValue valueWithBytes:&transform objCType:@encode(CGAffineTransform)] forKey:@"inputTransform"];

следующую строку

clampFilter.setValue(transform, forKey: "inputTransform")

производит

Type 'CGAffineTransform' does not conform to protocol 'AnyObject'

2 ответов


NSValue имеет конструктор, который принимает


Это может сделать.

var transform = CGAffineTransformIdentity;
var clampFilter = CIFilter(name: "CIAffineClamp")
var value = NSValue(CGAffineTransform: transform)
clampFilter.setValue(value, forKey: "inputTransform")