我在Google Analytics的实施说明中遇到了这个问题:
guard let gai = GAI.sharedInstance() else {
assert(false, "Google Analytics not configured correctly")
}
Run Code Online (Sandbox Code Playgroud)
我从来没有想过可以在else子句中有一个断言,而不返回.这对我来说没有意义,因为断言只会在测试方案中进行评估.那么,为什么编译器不警告它不返回(在发布版本的情况下).
编辑:这是在功能范围内 application(_:didFinishLaunchingWithOptions) -> Bool
编辑2:我发现的其他信息可以解答它:
不幸的是,一旦你进行发布构建,这将会中断,因为在发布配置中删除了断言,并且一个保护块必须结束当前作用域的执行.
我最近刚刚使用 CocoaPods 安装了 SwiftLint。我想更改 SwiftLint 的规则,但是当我进入 pod -> SwiftLint 时,我找不到名为“rules”的文件,通过该文件我可以编辑我的规则。请让我知道我该如何做同样的事情!多谢!对此,我真的非常感激!
Apple 的 Swift Charts 最近在 WWDC 上推出。然而,我的练习图有冗余。不需要图例。如何创建具有所有颜色但没有图例的图表?
\n\n使用 \xe2\x80\x9c.foregroundStyle(by: .value("Shape", shape.type))\xe2\x80\x9d 会导致图表自动向条形图添加多种颜色。但foregroundStyle也带有传奇色彩。删除 foregroundStyle 会同时删除图例和颜色:
\n\n这是最小的可重现代码:
\nimport Charts\nimport SwiftUI\n\nstruct ContentView: View {\n var body: some View {\n VStack {\n Text("Swift Chart Example")\n BarChart()\n .frame(width: 350, height: 350, alignment: .center)\n }\n }\n}\n\nstruct Shape: Identifiable {\n var type: String\n var count: Double\n var id = UUID()\n}\n\nlet data: [Shape] = [\n .init(type: "Square", count: 12),\n .init(type: "Heart", count: 10),\n .init(type: "Rectangle", count: 21),\n .init(type: "Star", count: 15),\n .init(type: "Circle", …Run Code Online (Sandbox Code Playgroud) 我创建了一个 Timer 对象,以便在我的应用程序的一个视图控制器中每秒重复执行一些代码。我的问题是,当我将视图控制器从导航堆栈中弹出时,系统会自动使计时器无效吗?不知何故,我的直觉告诉我事实并非如此,因为计时器对象本身并不直接绑定到视图控制器对象。
\n\n编辑注意:下面是创建计时器的 VC swift 文件的代码。请不要因为我的业余代码而攻击我。因此,基本上会创建这种类型的 VC 并将其推送到导航堆栈上。假设用户在按导航栏上的后退按钮返回根视图之前没有按暂停按钮(在这种情况下计时器无效),计时器对象会被销毁吗?
\n\n//\n// TimerViewController.swift\n// SwiftyTimer\n//\n// Created by Jiaming Zhou on 5/6/20.\n// Copyright \xc2\xa9 2020 Jiaming Zhou. All rights reserved.\n//\n\nimport UIKit\n\nclass TimerViewController: UIViewController {\n\n @IBOutlet var countDownLabel: UILabel!\n @IBOutlet var imageView: UIImageView!\n\n private var timer: Timer?\n private var timePassed = -1\n private enum status {\n case ongoing\n case paused\n case completed\n }\n\n private enum buttonImage {\n case cancelButton\n case pauseButton\n case resumeButton\n }\n\n private var state = status.ongoing\n\n var activity: Activity?\n\n override …Run Code Online (Sandbox Code Playgroud)