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 サポートは終了しますか?