swift - mac - xcode app store
¿Pueden los parques infantiles Swift ver otros archivos fuente en el mismo proyecto? (3)
Creé la clase personalizada más simple en un archivo Swift separado en mi proyecto:
class Foo
{
init()
{
println("I made a foo.")
}
}
Luego, en un patio de juegos dentro del mismo proyecto, lo intenté
var x = Foo()
A Xcode no pareció gustarle esto, y me dijo que ''Foo'' es un identificador no resuelto. Estoy algo confundido acerca de cómo los parques infantiles encajan en el resto de la estructura del proyecto, ya que cualquier otro archivo Swift en mi proyecto puede resolver ''Foo'' sin problemas.
¿Cómo puedo hacer que mi área de juegos pueda usar clases personalizadas que defino en otros archivos de Swift en mi proyecto? He intentado nombrar el módulo del producto para el objetivo de compilación e importarlo en el patio de recreo, sin éxito: el área de juegos no reconoce el nombre del módulo del producto.
Gracias de antemano por la ayuda. Sé que es algo simple.
Ellos no pueden. Los parques infantiles son independientes. Esto con suerte cambiará en el futuro.
Editar: A partir de Xcode 6.3, Playgrounds ahora puede contener código de apoyo. Todavía no pueden ver otro código en el mismo proyecto, pero el código se puede agregar a la carpeta de soporte de un patio de recreo que se puede usar desde el patio de recreo. Vea el blog de Swift para más información.
Hay dos formas de usar el código de tu proyecto en un área de juegos
Carpeta de fuentes del patio de recreo
Sí, en Xcode 6.3 Beta 3 (y con suerte, en el futuro):
Los parques infantiles ahora están representados dentro de Xcode como un paquete con un triángulo de revelación que revela las carpetas Recursos y Fuentes cuando se hace clic. Estas carpetas contienen contenido adicional que se puede acceder fácilmente desde el código Swift principal de su zona de juegos. Para ver estas carpetas, elija Ver> Navegadores> Mostrar navegador de proyectos (o simplemente pulse Comando-1).
Abra un nuevo patio de recreo y pulse cmd + 1 para ver el panel izquierdo, luego arrastre los archivos a la carpeta de source
para usarlos en el patio de recreo.
Nota:
Los archivos en la carpeta fuente se compilan en un marco, lo que significa que si desea que las clases, funciones, etc. sean accesibles en el patio de recreo, deben estar explícitamente marcadas como public
.
public class VisibleClass {
}
class InvisibleClass {
}
Fuente: blog de lanzamiento
Compilar el proyecto en el marco
- Mueva el proyecto al espacio de trabajo si aún no lo está. (Archivo -> Guardar como área de trabajo) hará el truco
- Agregar objetivo de marco a su proyecto
- Estructura de compilación
- Asegúrese de que los archivos a los que desea acceder se agreguen a su objetivo de marco
- Agregar Playground al espacio de trabajo (NO el proyecto)
- Use
@testable import YourFrameworkName
- Código de acceso en el patio
Hice una escritura aquí que entra en un poco más de detalle si desea verificarlo .
Sí. Empecé simplemente agregando un archivo de clase en el directorio de Fuentes. Hice todo público:
- clase
- en eso
- miembros
Después de mucho intentarlo, nada funcionó. El XCode se colgó y, después de volver a abrirlo, todo funcionó como un amuleto.