- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
使用 Swift 2,在我设计的示例中,我将 String
转换为 Int
或更具体地说是 Int
或 Int?
使用泛型。在 Int?
应该为 nil 的情况下,转换将失败并出现 fatalError: fatal error: unwrapping an Optional value
这些看起来可能是相似/重复的问题:
我的问题是:应该如何转换为 nil 的可选值?
例子:
class Thing<T>{
var item: T
init(_ item: T){
self.item = item
}
}
struct Actions{
static func convertIntForThing<T>(string: String, thing:Thing<T>) -> T{
return convertStringToInt(string, to: T.self)
}
static func convertStringToInt<T>(string: String, to: T.Type) -> T{
debugPrint("Converting to ---> \(to)")
if T.self == Int.self{
return Int(string)! as! T
}
// in the case of "" Int? will be nil, the cast
// here causes it to blow up with:
//
// fatal error: unexpectedly found nil while unwrapping an
// Optional value even though T in this case is an Optional<Int>
return Int(string) as! T
}
}
func testExample() {
// this WORKS:
let thing1 = Thing<Int>(0)
thing1.item = Actions.convertIntForThing("1", thing: thing1)
// This FAILS:
// empty string where value = Int("")
// will return an Optional<Int> that will be nil
let thing2 = Thing<Int?>(0)
thing2.item = Actions.convertIntForThing("", thing: thing2)
}
testExample()
最佳答案
你不能将 nil 转换为 some-kind-of-nil,但是你可以make some-kind-of-nil,正如这个人为的例子所示:
func test(s:String) -> Int? {
var which : Bool { return Int(s) != nil }
if which {
return (Int(s)! as Int?)
} else {
return (Optional<Int>.None)
}
}
print(test("12"))
print(test("howdy"))
关于Swift 将 Generic 转换为具有 nil 值的 Optional 会导致 fatalError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232392/
我们有一个特殊的日志记录函数来表示特定类型的崩溃,因此,它在内部调用fatalError。然而,与fatalError不同,当我们在guard语句中使用它时,它仍然提示我们没有退出guard的范围。
如何在 Swift 中对 fatalError 代码路径进行单元测试? 例如,我有以下swift代码 func divide(x: Float, by y: Float) -> Float {
我有一个在 Xcode 8.2.1 中用 Swift 2 编写的 iOS 应用程序,它是为 iOS 10.2 构建的。 我收到了许多来自 TestFlight 的崩溃报告,尽管有符号化,但没有任何崩溃
本文整理了Java中org.apache.hadoop.ha.ZKFailoverController.fatalError()方法的一些代码示例,展示了ZKFailoverController.fa
我有一些情况需要我的框架报告 fatalError或preconditionFailure和崩溃。我已经围绕这些条件设置了一些单元测试,以确保它们正确命中。 如果单元测试在没有测试主机应用程序的情况下
说我想做某事 val foo = when(bar) { "one" -> true "two" -> false else -> // in Swift it would be `
我在 Swift 周围闲逛,发现 fatalError 有这个签名: @noreturn public func fatalError(@autoclosure message: () -> Stri
我目前正在使用 Scala 和 Play Framework 2 开发一个项目。我想在运行时编译一些 Scala 代码并从解释器中获取结果。我在网上找了一些例子,最后得出了以下代码: package
我有一个奇怪的错误,一段时间以来我都没有设法解决。我想通过与英特尔 OpenVINO 的推理引擎一起使用来扩展一个 C++ 软件包。因此,我必须动态链接一些库并将一些 header 包含到现有代码中。
如果我的应用程序出现问题,我想立即终止该应用程序。在 swift 中我可以使用 fatalError(),是否有等效的 java? 最佳答案 我没有找到与 Android 中的 fatalError
我想放弃父类(super class)的默认初始化方法。我可以使用 Swift 中的 fatalError 轻松实现: class subClass:NSObject{ private var k
我正在尝试在 Spark 集群上运行一个基本脚本,该脚本接收一个文件,将其转换并以不同的格式输出。目前的 Spark 集群由 1 个主节点和 1 个从节点组成,两者都运行在同一节点上。完整的命令是:
使用 Swift 2,在我设计的示例中,我将 String 转换为 Int 或更具体地说是 Int 或 Int? 使用泛型。在 Int? 应该为 nil 的情况下,转换将失败并出现 fatalErro
我有一个 ViewController,它需要用 ViewModel: NSObject 初始化。 我对 ViewController 的实现是: class ViewController: UIVi
我有一个 WeMos D1 Mini 。以下是董事会信息: Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "LOLIN(WE
我正在尝试生成我的项目文档,但在 java.lang 上出现错误 Loading source files for package com.swimtechtest.swimmer... Loadin
我是一名优秀的程序员,十分优秀!