¿Cómo insertar nuevos datos a la entidad en Swift3?

En Swift anteriormente, pude usar un código como este para agregar nuevos datos a mi "TestEntity" en mi modelo de datos.

NSManagedObject fue creado para mi "TestEntity" y pude establecer sus atributos con la sintaxis "dot"

Al final, salvaría el contexto.

let entity=NSEntityDescription.insertNewObject(forEntityName: "TestEntity", into: context) as! TestEntity
entity.testAttribute="test value"
context.save()

Este código no funciona en Swift3. Cuando lo ejecuto, aparece el siguiente error de tiempo de ejecución:

No se pudo convertir el valor del tipo 'NSManagedObject_TestEntity_' (0x175306b0) a 'testCoreData.TestEntity' (0xd6bb8). 2016-06-19 11: 07: 52.305195 testCoreData [689: 264453] No se pudo convertir el valor del tipo 'NSManagedObject_TestEntity_' (0x175306b0) en 'testCoreData.TestEntity' (0xd6bb8)

¿Alguien puede arrojar algo de luz sobre cómo se debe hacer esto en swift3, por favor? Cualquier ayuda es muy apreciada. Gracias.

La segunda parte de la pregunta es cómo acceder a los datos nuevamente. el siguiente código termina con un error: error fatal:NSArray el elemento no pudo coincidir con el tipo de elemento de matriz rápida

let fr:NSFetchRequest<TestEntity>=TestEntity.fetchRequest()

do {
   let searchResults=try context.fetch(fr)
   if let results=searchResults {
      for result in results {
         print("testAtt = \(result.testAtt)")
      }
   }
} catch {

}

Respuestas a la pregunta(4)

Su respuesta a la pregunta