swift2 - objective - El compilador Swift confunde la versión 2 y 3
convert swift to objective c (3)
Creo que sé cuál es el problema. Has convertido directamente todos los archivos de Swift2.0
a Swift3
. No funcionará de esa manera. Sugiero que elimine los pods y clone la rama Swift3 de esto (que creo que está usando) y copie el directorio fuente a su proyecto por ahora, ya que no dice qué versión de ese repositorio es swift-3
utilizable. Debería resolver su problema. :)
Instalé un cocoapod en un proyecto y ejecuté el convertidor para cambiarlo a Swift 3.
El problema es que el compilador cree que estoy usando Swift 2, y está cometiendo errores en la sintaxis correcta de Swift 3 (un enorme error de 129). Por ejemplo:
internal enum Error: ErrorProtocol {
case noCentralManagerSet
case busy
case interrupted
}
Lanza el use of undeclared type ''ErrorProtocol''
.
¿Qué está mal?
El código de Swift 3 que escribí no arroja errores de compilación.
Aquí está la salida de xcodebuild -showsdks
:
2016-07-01 14:16:05.850 xcodebuild[30824:2848916] [MT] PluginLoading: Required plug-in compatibility UUID 1637F4D5-0B27-416B-A78D-498965D64877 for plug-in at path ''~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/WebDevSupport.xcplugin'' not present in DVTPlugInCompatibilityUUIDs
2016-07-01 14:16:05.864 xcodebuild[30824:2848916] [MT] PluginLoading: Required plug-in compatibility UUID 1637F4D5-0B27-416B-A78D-498965D64877 for plug-in at path ''~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/WebDevelopment.xcplugin'' not present in DVTPlugInCompatibilityUUIDs
2016-07-01 14:16:05.911 xcodebuild[30824:2848916] [MT] PluginLoading: Required plug-in compatibility UUID 1637F4D5-0B27-416B-A78D-498965D64877 for plug-in at path ''~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/WakaTime.xcplugin'' not present in DVTPlugInCompatibilityUUIDs
2016-07-01 14:16:05.944 xcodebuild[30824:2848916] [MT] PluginLoading: Required plug-in compatibility UUID 1637F4D5-0B27-416B-A78D-498965D64877 for plug-in at path ''~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Rayrolling.xcplugin'' not present in DVTPlugInCompatibilityUUIDs
2016-07-01 14:16:05.967 xcodebuild[30824:2848916] [MT] PluginLoading: Required plug-in compatibility UUID 1637F4D5-0B27-416B-A78D-498965D64877 for plug-in at path ''~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CocoaPods.xcplugin'' not present in DVTPlugInCompatibilityUUIDs
2016-07-01 14:16:05.997 xcodebuild[30824:2848916] [MT] PluginLoading: Required plug-in compatibility UUID 1637F4D5-0B27-416B-A78D-498965D64877 for plug-in at path ''~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin'' not present in DVTPlugInCompatibilityUUIDs
OS X SDKs:
OS X 10.12 -sdk macosx10.12
iOS SDKs:
iOS 10.0 -sdk iphoneos10.0
iOS Simulator SDKs:
Simulator - iOS 10.0 -sdk iphonesimulator10.0
tvOS SDKs:
tvOS 10.0 -sdk appletvos10.0
tvOS Simulator SDKs:
Simulator - tvOS 10.0 -sdk appletvsimulator10.0
watchOS SDKs:
watchOS 3.0 -sdk watchos3.0
watchOS Simulator SDKs:
Simulator - watchOS 3.0 -sdk watchsimulator3.0
Dos cosas me ayudan a manejar casos como estos.
Debido a que Xcode abre automáticamente proyectos anteriores que nunca se cerraron si abres el Proyecto A en Xcode 7, entonces abre Xcode 8 para comenzar algo nuevo. Xcode 8 también abrirá ese mismo Proyecto A. Entonces, de hecho, debes cerrar el proyecto A en Xcode 8 o bien obtendrá toneladas de errores y podría pensar que está trabajando en Xcode 7 porque el Proyecto A está abierto. En este punto, el Proyecto A está abierto en Xcode 7 y Xcode 8.
También projectName - Swift 2
mi carpeta de proyecto projectName - Swift 2
luego la duplico y le doy el nombre `projectName - Swift 3.
Por supuesto, tenemos control de versiones, pero para estar a salvo me gusta tener dos carpetas separadas para Swift 2/3 porque las cosas pueden volverse locas con el mismo proyecto abierto en dos versiones de Xcode.
Como también tiene que decirle a Terminal que use directorios separados para las instalaciones de pod, es más seguro porque no hay superposición.