无法创建Swift包管理器库
关于SPM的文档很差,大多数关于它的文章都是在SPM开始时发表的 我已经在Swift中实现了一个算法(匈牙利算法),并期待着在Github中将其作为库发布。我不得不在这个项目中第一次使用SPM来解决另一个依赖项,一旦它开始工作,它就完美了 现在,我无法使用另一个项目中的库。我已经决定从一个新的git回购开始,因为我不能让以前的工作 该库名为Hume,它包含一个定义Hume类的Hume.swift文件 我所经历的步骤如下:无法创建Swift包管理器库,swift,package,Swift,Package,关于SPM的文档很差,大多数关于它的文章都是在SPM开始时发表的 我已经在Swift中实现了一个算法(匈牙利算法),并期待着在Github中将其作为库发布。我不得不在这个项目中第一次使用SPM来解决另一个依赖项,一旦它开始工作,它就完美了 现在,我无法使用另一个项目中的库。我已经决定从一个新的git回购开始,因为我不能让以前的工作 该库名为Hume,它包含一个定义Hume类的Hume.swift文件 我所经历的步骤如下: 已为库创建目录 swift包初始化——类型库 用代码填充文件 推送到Git
swift包初始化——类型库
swift包初始化——键入可执行文件
swift构建
swift包生成xcodeproj
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "Hume",
products: [
.library(
name: "Hume",
targets: ["Hume"]),
],
dependencies: [
.package(url: "https://github.com/aleph7/Upsurge.git", from: "0.10.2"),
],
targets: [
.target(
name: "Hume",
dependencies: ["Upsurge"]),
.testTarget(
name: "HumeTests",
dependencies: ["Hume"]),
]
)
库中只有一个具有此样式的文件:
import Upsurge
class Hume {
// Attributes
....
init(matriz:[[Double]]){
....
}
public func resuelve() -> (Double, [(Int, Int)]){
....
}
}
这是虚拟可执行文件中的Package.swift:
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "aa",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/Jasagredo/Hume.git", from: "0.1.1"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "aa",
dependencies: ["Hume"]),
]
)
生成时的输出:
~/Desktop/aa swift build
Fetching https://github.com/Jasagredo/Hume.git
Fetching https://github.com/aleph7/Upsurge.git
Cloning https://github.com/Jasagredo/Hume.git
Resolving https://github.com/Jasagredo/Hume.git at 0.1.1
Cloning https://github.com/aleph7/Upsurge.git
Resolving https://github.com/aleph7/Upsurge.git at 0.10.2
Compile Swift Module 'Upsurge' (30 sources)
Compile Swift Module 'Hume' (1 sources)
Compile Swift Module 'aa' (1 sources)
Linking ./.build/x86_64-apple-macosx10.10/debug/aa
~/Desktop/aa
但当我在虚拟可执行文件中编辑main.swift时,我发现以下错误:
import Hume
var a = Hume(matriz: [[1,1],[1,1]]) //Cannot call value of non-function type 'module<Hume>'
导入休谟
var a=Hume(matriz:[[1,1],[1,1]])//无法调用非函数类型“module”的值
而且,Xcode不会自动向我推荐休谟类。我只是不知道我做错了什么
非常感谢您的帮助。我终于设法把事情办好了。问题是类(及其init方法)没有声明为
public
。其余的配置都是正确的。我终于设法让一切正常工作了。问题是类(及其init方法)没有声明为public
。其余的配置是正确的。试试休姆。休姆(…)Xcode说:模块“休姆”没有名为“休姆”的成员,构建失败。我也尝试过命名类HunSolver和重命名文件,但都是一样的。当我试图声明HunSolver变量时,它会说“使用未解析的标识符‘HunSolver’”。尝试Hume。Hume(…)Xcode说:模块‘Hume’没有名为‘Hume’的成员,构建失败。我也尝试过命名类HunSolver和重命名文件,但都是一样的。当我试图声明一个HunSolver变量时,它会说“使用未解析的标识符‘HunSolver’”。