Hyperloop неизвестного или неподдерживаемого типа (UIAlertController)

Я пробую Hyperloop. И я пытаюсь запустить собственный скрипт swift, который есть в моем проекте (как показано в примере).

Вот мой быстрый код:

import UIKit

public class MySwiftCode : NSObject {
    func SayHello() {
        let alertController = UIAlertController(title: "iOScreator", message: "Hello, world!", preferredStyle: UIAlertControllerStyle.Alert)
        alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default,handler: nil))
    }
}

при компиляции я получаю следующее сообщение об ошибке:

[INFO]  Generating metabase for swift MyFramework /Users/ophir/Documents/Appcelerator_Studio_Workspace/HyperloopApp/src/MySwift.swift
Swift Generation failed with unknown or unsupported type (UIAlertController) found while compiling /Users/ophir/Documents/Appcelerator_Studio_Workspace/HyperloopApp/src/MySwift.swift
2016-01-26T16:40:22.195Z | ERROR  | ti run exited with error code 1

UIAlertController это часть UIKit ( https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIAlertController_class/) и, насколько я понимаю, нативный код, работающий с Hyperloop, не должен ждать, пока Appcelerator реализует его. Поэтому мне интересно, почему этот код не работает.

1 ответ

Прежде всего, убедитесь, что вы используете последнюю версию Hyperloop (по крайней мере, 1.2.6). Следующий пример кода работает для меня (проверено в хранилище hyperloop-examples):

импорт UIKit

public class MySwiftView : UIImageView {
    convenience init () {
        self.init(image: UIImage.init(named:"swift.png"))
    }

    func SayHello() {
        let alertController = UIAlertController(title: "iOScreator", message: "Hello, world!", preferredStyle: UIAlertControllerStyle.Alert)
        alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default,handler: nil))
    }

}

Также обязательно запустите приложение с iOS 8 и более поздними версиями. Поскольку это не-прокси API, вам нужно проверить его самостоятельно. Чтобы установить минимальную цель для iOS8, добавьте следующий ключ в <ios> раздел вашего tiapp.xml:

<min-ios-ver>8.0</min-ios-ver>

Другие вопросы по тегам