我正在尝试使用 Hyperloop 来使用第三方开源库。我想使用的库是Sweet Alert iOS。
该库有一个swift 文件。我已将此文件放在项目主文件夹内的 src 目录中(它必须在 src 文件夹中吗?我可以在项目中使用其他文件夹吗?子目录呢?)。
根据钛文档:
在您的 src 目录中找到的任何 *.swift 文件都将被自动编译
在我的应用程序中,当我执行以下操作时:
var UIView = require('UIKit/UIView');
Ti.API.info('UIView => ' + UIView);
有用。但是,如果我尝试要求 swift 文件中的任何类,我会收到一个错误,即它找不到架构 x86_64 模块。
var sweetAlert = require('SweetAlert');
var cancelAnimatedView = require('CancelAnimatedView');
在查看 SweetAlert 源代码时,我还注意到 SweetAlert 类是open
而其他类只是普通类:
open class SweetAlert
我不是一个快速的开发人员,所以我真的不知道这意味着什么。
我在这里想念什么?
编辑
一些进展...所以我发现我需要一个appc.js
定义src
框架的文件和 MyFramework 的名称。我require
所做的应该与 swift 文件的文件名匹配。现在,当我编译时,我看到了一些关于 swift 编译的更有趣的输出,但是得到了一个错误:
[INFO] Generating metabase for swift MyFramework /Users/ophir/Documents/Appcelerator_Studio_Workspace/HyperloopTest1/src/SweetAlert.swift
2017-06-29T14:43:44.061Z | ERROR | An uncaught exception was thrown!
Cannot read property '1' of null
2017-06-29T14:43:44.064Z | ERROR | Cannot read property '1' of null
编辑 2
我已经清除了 swift 文件中的所有脚本,并将其缩小到以下失败的脚本:
导入 Foundation 导入 UIKit 导入 QuartzCore
public enum AlertStyle {
case success,error,warning,none
case customImag(imageFile:String)
}
class SweetAlert: UIViewController {
}
class AnimatableView: UIView {
func animate(){
}
}
如果我删除func animate() { }
它不会失败。即使这个函数在那个 SweetAlert 类中,它也会失败。从我读到的内容来看,这是一个非常标准的 swift 代码。
所以这让我想知道——Hyperloop 2.0.0(!) 准备好用于生产应用了吗?