Swift 代码挑战的初学者项目设置
Beginner Project Setup for Swift Code Challenges
我是 Xcode 和 Swift 的新手。我正在通过挑战 Advent of Code 来学习。我正在努力设置 Xcode 以允许我创建简单的 类 来访问项目中的文本文件。我知道我可以使用 Playgrounds,但我想学习调试器作为其中的一部分,而 Playgrounds 似乎不允许使用真正的调试器。
我的两个问题:
我应该使用什么样的项目模板?我不想在 iPhone 模拟器上 运行,也不想将其呈现为 Mac 应用程序。我只想执行一些代码并查看“打印”语句的结果。
访问存储在项目中的文本文件是否有任何特殊注意事项?我已经试过了,但我的代码无法访问这些文件,因为它找不到它们。我怀疑这是一个权限问题,但我不确定。
我在 2021 年 AoC 总排行榜上排名第 92 位。我做了 Swift 中的所有问题。我建议设置一个 Swift 包管理器包。
mkdir ~/aoc2021
cd ~/aoc2021
swift package init --type executable --name day01
现在您有一个包,其中包含一个名为 day01
的可执行目标。您可以在 ~/aoc2021/Sources/day01/main.swift
中找到源代码。如果你要求 Xcode 打开文件夹 ~/aoc2021
,它将把 Swift 包解析为一个项目。
不必担心从文件中读取输入,只需将 https://adventofcode.com/2021/day/1/input
中的输入复制到字符串文字中即可。示例:
let theInput = """
187
195
199
218
221
222
219
225
226
227
...
"""
当您准备好进入第 2 天时,您需要手动创建文件夹 ~/aoc2021/Sources/day02
并在该文件夹中创建一个新的 main.swift
。然后编辑 ~/aoc2021/Package.swift
并添加另一个可执行目标:
let package = Package(
name: "day01",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
],
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 this package depends on.
.executableTarget(
name: "day01",
dependencies: []),
// ADD THE FOLLOWING THREE LINES
.executableTarget(
name: "day02",
dependencies: []),
.testTarget(
name: "day01Tests",
dependencies: ["day01"]),
]
)
不要忘记将您的 Xcode 方案(在状态栏中)更改为 day02
,这样它将 运行 新的一天的代码。
我是 Xcode 和 Swift 的新手。我正在通过挑战 Advent of Code 来学习。我正在努力设置 Xcode 以允许我创建简单的 类 来访问项目中的文本文件。我知道我可以使用 Playgrounds,但我想学习调试器作为其中的一部分,而 Playgrounds 似乎不允许使用真正的调试器。
我的两个问题:
我应该使用什么样的项目模板?我不想在 iPhone 模拟器上 运行,也不想将其呈现为 Mac 应用程序。我只想执行一些代码并查看“打印”语句的结果。
访问存储在项目中的文本文件是否有任何特殊注意事项?我已经试过了,但我的代码无法访问这些文件,因为它找不到它们。我怀疑这是一个权限问题,但我不确定。
我在 2021 年 AoC 总排行榜上排名第 92 位。我做了 Swift 中的所有问题。我建议设置一个 Swift 包管理器包。
mkdir ~/aoc2021
cd ~/aoc2021
swift package init --type executable --name day01
现在您有一个包,其中包含一个名为 day01
的可执行目标。您可以在 ~/aoc2021/Sources/day01/main.swift
中找到源代码。如果你要求 Xcode 打开文件夹 ~/aoc2021
,它将把 Swift 包解析为一个项目。
不必担心从文件中读取输入,只需将 https://adventofcode.com/2021/day/1/input
中的输入复制到字符串文字中即可。示例:
let theInput = """
187
195
199
218
221
222
219
225
226
227
...
"""
当您准备好进入第 2 天时,您需要手动创建文件夹 ~/aoc2021/Sources/day02
并在该文件夹中创建一个新的 main.swift
。然后编辑 ~/aoc2021/Package.swift
并添加另一个可执行目标:
let package = Package(
name: "day01",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
],
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 this package depends on.
.executableTarget(
name: "day01",
dependencies: []),
// ADD THE FOLLOWING THREE LINES
.executableTarget(
name: "day02",
dependencies: []),
.testTarget(
name: "day01Tests",
dependencies: ["day01"]),
]
)
不要忘记将您的 Xcode 方案(在状态栏中)更改为 day02
,这样它将 运行 新的一天的代码。