以下のクラスを作成したところ、"compiler segmentation fault when building"が出力されてコンパイルエラーになりました。
環境
Xcode Version | Swift Version |
---|---|
6.4 | 1.2 |
BaseModel.swift
import UIKit
protocol BaseModel: NSObjectProtocol {
/// 変換するモデルクラス
typealias ModelType
/**
APIからのレスポンスをModelTypeの変換する
:param: response APIからのレスポンス
:returns: 変換できたらModelTypeを返す。できなければnil。
*/
static func toModel(#response: AnyObject!) -> ModelType?
}
APIArrayResult.swift
import UIKit
class APIResult<T: ModelType> {
/// APIからのレスポンスを変換したクラス
var model: T.ModelType? = nil
/**
init
:param: response APIからのレスポンス
:returns: self
*/
init(response: AnyObject!) {
self.model = T.toModel(response: response)
}
}
コンパイルエラーが差していた箇所はAPIResult
が保持するvar model: T.ModelType?
の部分でした。
なので以下のように書き換えたところ、コンパイルエラーがなくなりました。
APIArrayResult.swift
import UIKit
class APIResult<T: ModelType> {
var model: Optional(T.ModelType) = nil
init(response: AnyObject!) {
self.model = T.toModel(response: response)
}
}
何が気に食わなかったのでしょうか...。