Импорт библиотеки stati c в быстрый проект - PullRequest
0 голосов
/ 08 января 2020

Создайте stati c библиотеку в объективе c и c и пытаетесь импортировать ее в быстрый проект. перешел по этой ссылке

Получение этой ошибки при сборке приложения

Неопределенные символы для архитектуры arm64:
"_OBJC_CLASS _ $ _ XYZ" , ссылка из: obj c -class-ref в ViewController.o ld: символы не найдены для архитектуры arm64 clang: ошибка: команда компоновщика не выполнена с кодом выхода 1 (используйте -v для просмотра вызова)

Static library source Library Search Pathsimport paths Использование:

Xcode10.2

Swift 4.2

1 Ответ

0 голосов
/ 11 января 2020

Хорошо, давайте сделаем это с нуля шаг за шагом, просто чтобы вспомнить, что это возможно (использовал Xcode 11.2, извините - нет 10.2, но я делал это даже раньше, так что с тех пор ничего не изменилось)

1) Создать новый шаблон формы проекта

iOS> Приложение для одного представления> Образец (Swift / Storyboard)> Далее> Создать> Build> Ok

Initial settings

2) Создание stati c lib из шаблона

Project Navigator> Пример> Добавить цель> iOS> Stati c Библиотека> Калькулятор (Objective- C)> Fini sh

add static lib

3) Добавить что-то значимое в Calculator

Обновить Calculator.h & Calculator.m с помощью следующий ...

@interface Calculator : NSObject
+ (NSString *)calculatedValue;
@end

@implementation Calculator
+ (NSString *)calculatedValue {
    return @"1 + 1 = 5";
}
@end

Переключить активную схему в Калькулятор> Построить> ОК

4) (!!! Очень важный шаг) Подготовить Swift-Obj C bridge in main target

Я предпочитаю, чтобы Xcode делал это, поэтому ... переключите обратно активную схему в Sample app

Файл> Создать> Cocoa Touch Class> Stub ( Цель- C)

stati lib creation

Далее> (Убедитесь, что цель проверена на примере)> Создать

bridge creation

Создать заголовок моста (Вот и все! - на самом деле внутренне это делает больше)> Удалите Stub.h / m (так как они нам не нужны)

5) Откройте Sample-Briding-Header.h и вставьте в него #import "Calculator.h"

6) Добавить библиотеку в основное целевое приложение

Project Navigator> Образец> Образец цели> Общее> Раздел «Каркасы, библиотеки ...> +> выбрать libCalculator.a

static lib embed

Собственно, вот и все - теперь можно использовать классы Objective- C из библиотеки stati c в основном приложении на основе Swift

7 ) Простые демонстрационные манипуляции ... создайте UILabel в View Controller Scene из Main.storyboard и создайте выход для него в ViewController.swift, установите строку, сгенерированную в библиотеке, в UILabel.text свойство

class ViewController: UIViewController {

    @IBOutlet weak var results: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()

        results.text = Calculator.calculatedValue()
    }
}

8) Build & Run> OK (посмотрите результат интеграции)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...