Using Xcode 9.1 Beta with Swift 4, I found that migration works, but you have to be careful how you specify the name of the conversion method, it also seems you need to mark your functions as @objc.
For example, my Value expression:
FUNCTION($entityPolicy, "changeDataForData:" , $source.name)
My conversion policy method name:
class StudentTransformationPolicy: NSEntityMigrationPolicy { @objc func changeData(forData: Data) -> String { return String(data: forData, encoding: .utf8)! } }
It was definitely difficult and experimented a lot before I got it to run when I started my application after changing the model. It might be easier to implement "createDestinationInstances" for your policy if all this does not work, but we will leave it for another day ...
source share