2016-11-27 3 views
0

Swift новичок здесь, используя swift 3 на Linux с менеджером пакетов.Импорт локального быстрого модуля

У меня есть пакет, регулирующий, исполняемый файл и пакет Sibling Utils, предназначенный для библиотеки. Утилиты/Источники имеют файл TextReader.swift, а класс TextReader и его функция init - общедоступны. Каталог Utils является мерзавцем репо, описанный в Регулировать/Package.swift:

dependencies: [.Package(url: "../Utils", "1.0.0")] 

Я попытался 3 способа создать экземпляр объекта TextReader в программе регламентировать и получил 3 сообщения об ошибках:

import Utils 
... 
let reader = TextReader(filename: name) 

ошибка: использование неразрешенного идентификатора 'TextReader'

import Utils 
... 
let reader = Utils.TextReader(filename: name) 

ошибка: модуль 'Utils' не имеет член с именем 'TextReader'

import class Utils.TextReader 

ошибка: нет такой Децл в модуле

Похоже, модуль библиотеки не нуждается в дополнительной структурой объявить свой экспорт, возможно.

Что мне нужно сделать здесь? Благодаря!

+0

Как выглядит 'Utils/Package.swift'? Можете ли вы успешно запустить 'swift build' на' Utils' автономно, а на 'Regulate' с зависимостью' Utils' в 'Package.swift', но нет кода для импорта' TextReader'? –

+0

Utils/Package.swift имеет только имя: «Utils», и, похоже, он создает автономный - никаких жалоб и разумного вывода в .build. Кроме того, Regulate строит успешно с зависимостью Utils и импортирует Utils в код, но не ссылается на TextReader. – user1148758

+0

Gotcha. Когда вы создаете 'Regulate', вы видите строку, которая клонирует' Utils', и вы видите исходный код 'Utils' с вашим подкаталогом' Regulate/Packages'? Кроме того, если вы не использовали 'swift package init' для начала работы с' Utils', возможно, стоит подкрепить его, попробовав новую инициализацию пакета и скопировав требуемый код в сгенерированную структуру пакета. –

ответ

0

D'oh! Это похоже на конфликт имен.

Когда я использую Utils2 вместо Utils, он отлично работает. С Utils он клонировал и построил другой модуль, но, видимо, обратился к некоторому системному модулю, когда я на это ссылался.

Смежные вопросы