Quantcast
Channel: FiveTech Software tech support forums
Viewing all articles
Browse latest Browse all 26212

enviando datos desde una función en swift ( experimental )

$
0
0
[quote="Antonio Linares":j83urols] Que extensión de fichero usas para swift ? [/quote:j83urols] Los Archivos swift usan la extension .Swift [quote="Antonio Linares":j83urols] Cómo lo compilas ? Cómo lo enlazas ? [/quote:j83urols] Para el experimento he realizado lo siguiente .. Por un lado he creado dos carpetas nuevas dentro de la estructura de fivemac una es objs donde van a parar los obj de archivos swift otra es swift dentro de source que es donde he colocado el archivo swift experimental y donde van a parar los archivos auxiliares generados . he creado dos archivos nuevos para no molestar demasiado a lo que tenemos en fivemac uno llamado foo.swift que he colocado en la capeta swift y otro llamado swfun.m que he colocado en winapi y que tiene el código para recoger los resultados ... He modificado nuestro make file añadiendo : SWIFTFLAGS = -I../include -sdk $(shell xcrun --show-sdk-path -sdk macosx) una nueva sección ... SWIFT_OBJS = ./objs/foo.o y una nueva directiva de compilación ./objs/%.o : ./source/swift/%.swift if [ ! -d "objs" ]; then mkdir objs; fi swiftc -frontend -c -color-diagnostics -primary-file $< \ -module-name Bridgette \ $(SWIFTFLAGS) -emit-module -emit-module-path ./source/swift/$*.swiftmodule \ -emit-objc-header-path ./source/swift/$*-Swift.h \ -enable-testing -enable-objc-interop -parse-as-library \ -o $@ if [ ! -d "lib" ]; then mkdir lib; fi ar rc ./lib/libfivec.a $@ Esto hace que los archivos colocados en la carpeta swift sean compilados , que generen un archivo .o y que generen un archivo cabecera -Swift.h . Este archivo de cabecera debe incluirse en el archivo .m que quiera usar funciones del archivo swift . Se tendria que colocar al principio ya que si no esta generado el archivo .o de swift y su cabecera el archivo .m que contenga su código fallará al compilar . Dentro de swift las funciones a usar las he colocado dentro de una clase publica swift y he creado métodos parta las funciones. Todo esto es un experimento y está muy verde sobre todo el tema de paso de paramentos y sus tipos . Apple ha apostado por swift en detrimento de objC , esta claro que se puede mezclar código swift con código objC . Ya tenemos los comandos para poder compilar desde linea de comandos o desde un makefile . Swift tiene un metodo relativamente simple para poder usar una función objC dentro de su código y debemos pensar que tanto las funciones internas de Harbour como nuestras funciones C son al final funciones C o lo que es lo mismo ObjC . Desde una función C también podemos recuperar valores de funciones completas de swift y así poder usarlas dentro de harbour . Uso simple ( sin usar funciones C dentro de swift ) archivo swfun.m [code=fw:j83urols][/code:j83urols] archivo foo.swift [code=fw:j83urols][/code:j83urols]

Viewing all articles
Browse latest Browse all 26212

Trending Articles