I have my CoreData model set in a xcdatamodel file.
My attribute YYYY has a type transformable and I set the tranformer name in the Data model inspector.
I my case I was storing a [CLLocation] in my model. 
class LocationArrayTransformer : NSValueTransformer {
    override func transformedValue(value: AnyObject?) -> AnyObject? {
        let locations = value as! [CLLocation]
        return NSKeyedArchiver.archivedDataWithRootObject(locations)
    }
    override func reverseTransformedValue(value: AnyObject?) -> AnyObject? {
        let data = value as! NSData
        return NSKeyedUnarchiver.unarchiveObjectWithData(data)
    }
}
That's my value transformer.
But somehow I'm still getting the warning in the console : No NSValueTransformer with class name XXX was found for attribute YYYY on entity ZZZZ
Any Idea why ?
I spent way to much time on this to not share the solution I found :
I had to make the NSValueTransformer subclass available to Objc. 
@objc(LocationArrayTransformer)
class LocationArrayTransformer : NSValueTransformer {
 ....
}
Simple as that.
As @Sbooth points out, Swift classes are namespaced. Using @objc makes the class available without namespacing. So setting the transformer name as MyApp.Mytransformer works well too ! 
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With