私のアプリでクラッシュを訴えているクライアントがいくつかあります。私はそれを再現することはできませんでした。 Crashliticsがクラッシュを検出しました:オプションのアンラッピング時にクラッシュする
func addDevice(unconfiguredDevice: UnconfiguredDevice) {
if let macSegment = unconfiguredDevice.macSegmentFromSSID { <<-CRASH
print("unconfigured mac: \(macSegment)")
if let setupDevice = self.unconfiguredDevices.value.first(where: { Device in Device.macEnd == unconfiguredDevice.macSegmentFromSSID! }) {
setupDevice.unconfiguredDevice = unconfiguredDevice
} else {
self.unconfiguredDevices.value.append(SetupDevice(unconfiguredDevice: unconfiguredDevice))
}
}
}
クラッシュタイプはEXC_BREAKPOINTです。私は、この種のクラッシュがオプションのアンラッピングに関連している可能性があることを、この周りのいくつかの他のスレッドで見てきました。実際、macSegmentメソッドはオプションです。しかし、私はその問題が何であるか理解していません。 (この方法は、WACを介して設定可能なデバイスを検出するためのものです)。
アイデア/ヒント/提案はありますか?
'UnconfiguredDevice'は暗黙的にアンラップされたオプションですか?そうであれば、それを '?'でマークする必要があります: ''もしlet macSegment = unconfiguredDevice?.macSegmentFromSSID {' – the4kman
あなたは強制的にゼロ値をアンラップしようとしています。問題はunconfiguredDevice.macSegmentFromSSIDになります! – iMuzahid
UnconfiguredDeviceはWACによって返されます。私はオプションではないと思います。どのようにmacSegmentがオプションのオプションを返す拡張メソッドであるか。 – user426132