ios - docs parse platform
Conectar el framework Objective C a la aplicaciĆ³n Swift iOS 8(framework Parse) (6)
Estoy tratando de usar un marco de Objective C con el lenguaje de programación Swift para el desarrollo de iOS 8. Este es un caso específico de una importación, pero el problema general es:
¿Cómo se importa un marco de Objective C y se reconoce la importación?
Intento integrar el marco de Parse en una aplicación rápida usando las versiones beta de iOS 8 y Xcode 6.
Esta es la técnica para la integración del marco de Parse en Objective C:
https://www.parse.com/apps/quickstart#social/mobile/ios/native/existing
He descargado el marco de Parse como un archivo comprimido, lo extraje y lo importé a Xcode 6 sin ningún problema. Dentro de mi aplicación aparece como un marco con el formato apropiado bajo el nombre Parse.framework.
Mi proceso de pensamiento actual es modificar el archivo AppDelegate.swift
en el directorio raíz de mi proyecto. Aquí está el archivo actual sin modificaciones (generado automáticamente por Xcode tras la creación rápida del proyecto):
https://gist.github.com/fconcklin/e8ef7d8b056105a04161
He intentado importar el análisis añadiendo la línea de import Parse
debajo de la línea de import UIKit
. Sin embargo, Xcode emite una advertencia de que no se encuentra dicho módulo y falla la compilación.
También intenté crear un archivo ${PROJ_NAME_HERE}-Bridging-Header.h
que contiene la importación Objective C de Parse usando import <Parse/Parse.h>
. Esta línea no arroja un error, pero parece que al final no hace diferencia.
Gracias por adelantado. Avíseme si necesita más información.
'' Objective-C bridging header '' hará el truco.
Bien descrito en el link (" Uso de Parse con Swift y Xcode 6 ")
Después de investigar más, encontré la solución y me di cuenta de que estaba confundido.
El enfoque correcto es el siguiente:
Importe su marco Objective C arrastrando y soltando el marco en un proyecto Xcode 6 Swift.
Cree un nuevo archivo de Objective C en su proyecto (Archivo-> Nuevo-> Archivo [Objetivo C para iOS]).
Acepte el aviso (de acuerdo) para crear un archivo de encabezado de puente entre Objective C y Swift.
Elimine su archivo Objective C recién creado, pero conserve el archivo de cabecera puente
${YOURPROJ}-Bridging-Header.h
.En el archivo de encabezado Bridging, importe su marco utilizando la sintaxis estándar de importación de Objective C (por ejemplo,
#import <Parse/Parse.h>
).Esto renuncia a la necesidad de realizar una instrucción de
import Parse
en su archivoAppDelegate.swift
. Ahora puede escribir código que utiliza cualquier marco siempre que se importe usando el encabezado de puente. Está disponible en todos los archivos Swift de su proyecto.
Ahora, si desea probar la integración de Parse en su proyecto, puede escribir Parse.
y use la finalización del código para examinar el marco y ver que la finalización del código es indicativa de una importación exitosa.
Sin embargo, hay otra advertencia aquí que debe abordarse al usar un archivo de encabezado de puente. Todas las dependencias del marco deben especificarse también en el archivo Bridging Header. En el caso de integrar el framework Parse en una aplicación Swift, su archivo Bridging Header se verá así:
#import <Foundation/Foundation.h>
// Parse Dependencies
#import <AudioToolbox/AudioToolbox.h>
#import <CFNetwork/CFNetwork.h>
#import <CoreGraphics/CoreGraphics.h>
#import <CoreLocation/CoreLocation.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import <QuartzCore/QuartzCore.h>
#import <Security/Security.h>
#import <StoreKit/StoreKit.h>
#import <SystemConfiguration/SystemConfiguration.h>
// Import parse framework
#import <Parse/Parse.h>
Espero que esto ayude.
La nueva versión del marco de Parse necesita alguna actualización.
Tal como Debería insertar libsqlite3.0.dylib en Library Binary With Libraries y actualizar el archivo de encabezado con #import y #import
La respuesta para mi problema fue diferente. Hice que las rutas de búsqueda de Framework en la configuración de compilación de mi proyecto se establezcan en recursivo cuando deberían haber sido no recursivas .
En mi caso, mi objetivo tiene sus rutas de búsqueda de marco establecidas en $ (heredado) , lo que significa heredar la configuración de mi proyecto.
Las Rutas de búsqueda de marcos de mi proyecto solo tenían una ruta, $ DIRECCIÓN_ PROYECTO /../ Externo / ** (con los dos asteriscos que significan "buscar esta carpeta recursivamente". Mi archivo Parse.framework estaba ubicado en el nivel base de la carpeta Externa.
Cambiando el camino de recursivo a cosas fijas no recursivas para mí. Muy extraño...
Para agregar el marco de Parse al proyecto Swift: agregue este libaries al proyecto de Swift.
Pegue estos marcos de ParseSDK a su proyecto:
Agregue un ProjectName-Bridging-Header.h ( https://developer.apple.com/library/ios/documentation/swift/conceptual/buildingcocoaapps/MixandMatch.html ) ( https://.com/a/24272431/1847511 ) archivo con dicho contenido.
Agregue la ruta para unir el encabezado de puente:
Agregue el TestCode:
Ejecuta la aplicación.
Una forma de "agregar prueba" para agregar un encabezado de puente es la siguiente:
Si tiene un proyecto Swift , agregue un nuevo archivo Objective-C a su proyecto y Xcode le preguntará si desea configurar su proyecto con un encabezado puente. Presione sí
Si tiene un proyecto Objective-C , agréguele un nuevo archivo Swift y obtendrá el mismo aviso. Presione sí
Después de obtener el encabezado de puente, puede eliminar el archivo que acaba de agregar si lo desea.