Я планирую создать быструю статическую библиотеку и использовать ее в приложении iOS Swift. Я создаю быстрый вызов статической библиотеки SimpleLib, и он включает приветствие открытого класса, которое возвращает строку Hello World:
//
// Greeting.swift
// SimpleLib
//
import Foundation
public class Greeting {
public func Hello() -> String {
return "Hello World";
}
public init() {
}
public static func SayMorning() -> String{
return "Hi, Morning";
}
}
Проект быстрой статической библиотеки выглядит так:
И module.modulemap определяется следующим образом:
module SimpleLib {
header "SimpleLib-Swift.h"
export *
}
Я создаю и создаю файл libSimpleLib.a, я помещаю .a и другие файлы (на которые ссылаются другие сообщения в Интернете, чтобы указать, что нужно поместить в папку приложения) в папку приложения:
В проекте приложения я включаю путь Libs в FREAMEWORK_SEARCH_PATHS, LIBRARY_SEARCH_PATHS и HEADER_SEARCH_PATHS и включаю файл .a в Linked Framework.
Однако, когда я пытаюсь сослаться на класс Greeting в AppDelegate, я получаю сообщение об ошибке — Использование неразрешенного идентификатора «Приветствие».
//
// AppDelegate.swift
// testStatic
//
import UIKit
import SimpleLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
var s = Greeting
return true
}
......
}
Как создавать объекты Swift в статической библиотеке, можно найти в приложении. Каковы правильные шаги для экспорта класса/функций в быструю статическую библиотеку? Кому-нибудь удалось создать и использовать быструю статическую библиотеку в приложении iOS?