我有一个崩溃,我试图找到,甚至构建应用程序作为调试和执行它我似乎没有得到任何符号信息.
我在控制台收到的输出是:
fatal error: unexpectedly found nil while unwrapping an Optional value
Current stack trace:
0 libswiftCore.so 0x00007f1c51ca51c0 swift_reportError + 120
1 libswiftCore.so 0x00007f1c51cbfbe0 _swift_stdlib_reportFatalError + 62
2 libswiftCore.so 0x00007f1c51ab9be6 <unavailable> + 1186790
3 libswiftCore.so 0x00007f1c51c18ead <unavailable> + 2625197
4 libswiftCore.so 0x00007f1c51ab9be6 <unavailable> + 1186790
5 libswiftCore.so 0x00007f1c51bd4060 specialized _fatalErrorMessage(StaticString, StaticString, file : StaticString, line : UInt, flags : UInt32) -> Never + 96
6 myProgram 0x000000000045909e <unavailable> + 364702
7 myProgram 0x0000000000423f37 <unavailable> + 147255
8 libdispatch.so 0x00007f1c5276e177 <unavailable> …Run Code Online (Sandbox Code Playgroud) 我似乎无法覆盖以下方法,并创建了一个独立的示例,现在让我烦恼了几个小时.
它几乎肯定是愚蠢的,但我似乎无法覆盖swift类中的类方法,其中基类是Objective C,特别是返回类型是一个NSArray*.
我刚收到错误," Method does not override any method from its superclass"
所以我的失败如下所示:
但是如果将返回类型更改为像NSString这样简单的东西,它可以正常工作*
现在我已经Array<AnyObject>和其他几个人一起尝试过了,但是我对Swift语法仍然有点新鲜,所以我几乎肯定错过了一些明显的东西.
我无法b在子类中设置该属性。继承自的父类Codable似乎运行良好。
我觉得自己似乎缺少了一些显而易见的东西,但是我很难看到树木所用的木头。
下面是我的问题的一个操场例子。 b尽管设置为,仍保持0 10。传入的是子类,但可以设置父属性(很奇怪!)。
class Primary : Codable {
var a: Int = 0
}
class Secondary : Primary {
var b: Int = 0
}
let c = Secondary.self
func testRef<T: Codable>(_ t: T.Type) {
let json = "{\"a\":5, \"b\" : 10}".data(using: .ascii)!
let testCodable = try? JSONDecoder().decode(t.self, from: json)
print("a >> \((testCodable as! Primary).a)")
print("b >> \((testCodable as! Secondary).b)")
}
testRef(c)
Run Code Online (Sandbox Code Playgroud)
输出是:
a >> 5
b >> 0
Run Code Online (Sandbox Code Playgroud)
任何提示或指示将不胜感激。