【发布时间】:2016-03-26 12:37:05
【问题描述】:
我对 Swift 2.2 (Xcode 7.3) 感到沮丧。要模拟它,只需在用户定义的通用类中创建一个变量,然后从其他地方引用该类。例如:
class A<T> {
let genVar = 1
}
class MyViewController: UIViewController {
let myVar = A<Int>() // crash is here
}
如果您将在运行 iOS 7 的设备(在我的例子中是 iPhone 4)上运行此代码,它会在尝试创建泛型类型的变量时崩溃。以下是设备崩溃日志的第一行:
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x00298910
Triggered by Thread: 0
Thread 0 Crashed:
0 libswiftCore.dylib 0x006b1d64 0x4bd000 + 2051428
1 Phone 0x001c76ec 0xab000 + 1165036
2 libswiftCore.dylib 0x006b307c 0x4bd000 + 2056316
3 libswiftCore.dylib 0x006b2f70 0x4bd000 + 2056048
4 libswiftCore.dylib 0x006b0f24 0x4bd000 + 2047780
5 libswiftCore.dylib 0x006b107c 0x4bd000 + 2048124
6 Phone 0x0014e730 0xab000 + 669488
7 Phone 0x00129390 0xab000 + 517008
8 UIKit 0x31e9d9c4 -[UIClassSwapper initWithCoder:] + 188
在 iOS 8 和 9 模拟器/设备上,上面的代码可以正常工作。
是否会在不久的将来放弃对 iOS 7 的 Swift 支持?
【问题讨论】:
-
This question does not sufficiently describe the problem,我已经投票结束。您至少应该包含您的 iOS 7 崩溃堆栈跟踪,以及对何时应用崩溃的描述。是应用加载的时候吗?什么时候第一次访问这个视图控制器?何时访问此属性?
-
问题已编辑。
-
您没有添加任何有用的信息。我们需要符号。如果崩溃发生在实例变量的声明中,那么您需要显示正在初始化包含该实例变量的类的代码。我无法用你给我的东西重现这个,而且你没有提供有用的调试信息。
-
这很可能是一个 Swift 2.2 的错误,这将是给 Apple 的一个很好的错误报告。但是我们对此无话可说。这不是 Stack Overflow 问题。
-
可能与this bug 和this question 有关。我遇到了同样的问题,我的一半课程是通用的,自从 swift 2.2/Xcode 7.3 更新后它们似乎崩溃了
标签: ios swift xcode7.3 swift2.2