Swift beta 6 – Mensaje de error confuso del enlazador

Recibo un mensaje de error del enlazador al crear un progtwig Swift con Xcode 6 beta 6, con orientación a iOS 8. Este código se compiló y ejecutó correctamente con beta 5.

Undefined symbol for architecture x86_64: __TFSs26_forceBridgeFromObjectiveCU__FTPSs9AnyObject_MQ__Q_", referenced from: __TFC8RayTrace14RayTracingPlot15drawFocalPointfS0_FT_T_ in RayTracingPlot.o ld: symbol(s) not found for architecture x86_64 

Aquí está el código en cuestión:

 private func drawFocalPoint() { var attributes = Dictionary() let FString: String = "F" let distance: CGFloat = focalDistance let centerX = CGRectGetMidX(bounds) let centerY = CGRectGetMidY(bounds) let circleRadius: CGFloat = 4.0 let focalPointFrame = CGRectMake(0, 0, circleRadius * 2.0, circleRadius * 2.0) var path = UIBezierPath(ovalInRect: focalPointFrame) let color = UIColor.blackColor() let currentContext = UIGraphicsGetCurrentContext() CGContextSaveGState(currentContext) let shadowColor = UIColor(white:0, alpha:0.75).CGColor CGContextSetShadowWithColor(currentContext, CGSizeMake(0, 4), CGFloat(8), shadowColor) // Image F var imageFPath = UIBezierPath(CGPath: path.CGPath) let imageFTransform = CGAffineTransformMakeTranslation((centerX - distance - circleRadius), (centerY - circleRadius)) imageFPath.applyTransform(imageFTransform) color.set() imageFPath.fill() FString.drawAtPoint(CGPointMake(centerX - distance - circleRadius, centerY + 5), withAttributes:attributes) CGContextSetShadowWithColor(currentContext, CGSizeMake(0.0, 0.0), CGFloat(0.0), nil) // Clear shadow CGContextRestoreGState(currentContext) } 

Agradecería una pista sobre en qué parte de este código buscar el error para poder solucionarlo. Gracias.

Obtuve este error incluso con la nueva versión de Beta6 que se publicó horas después de que se tirara la mala.

He resuelto este y otros errores similarmente ilegibles al eliminar el contenido de la carpeta derivada. Puede encontrar dónde se encuentra esa carpeta yendo a Preferencias> Ubicaciones.

La ruta predeterminada es: / Users / [your username] / Library / Developer / Xcode / DerivedData

También puede mantener la Option mientras el menú Producto está abierto en Xcode, que cambiará a Clean a Clean Build Folder … y realizará la misma tarea sin tener que buscar carpetas.

Otra causa de este error (vista con Xcode 6.1.1 y Xcode 6.2 Beta 3) es tener una enumeración con un solo caso en una clase y declarar una variable de ese tipo en una segunda clase.

Este código causará un error del enlazador:

 class ClassA { enum ExampleEnum { case Option1 } } class ClassB { var example: ClassA.ExampleEnum = .Option1 } 

Esto lo arreglará.

 class ClassA { enum ExampleEnum { case Option1 case Option2 // Added a second case } } class ClassB { var example: ClassA.ExampleEnum = .Option1 } 

Radar para obtener más información y un proyecto de muestra: http://openradar.appspot.com/19369147

Una enumeración con solo un caso es bastante inútil en la práctica, por lo que el comstackdor probablemente lo esté optimizando o algo así. Golpeé esto al configurar un nuevo proyecto, usando una enumeración para los logros que se determinarán más adelante, y tenía solo 1 marcador de posición.

También tenga en cuenta: Use Watchdog http://watchdogforxcode.com/ para evitar tener que preocuparse por los problemas de los datos derivados.

Para otras personas que puedan tropezar con este error. He tenido esto cuando implementé CocoaPods y no configuré las Other Linker Flags de Other Linker Flags CocoaPods mi destino en $(inherited)