展开可选时会崩溃

时间:2017-08-08 09:52:10

标签: ios debugging crash optional

我有几个客户抱怨我的应用程序崩溃。我从来没有能够重现它。 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配置的设备)。

任何想法/提示/建议?

1 个答案:

答案 0 :(得分:0)

发生崩溃是因为当您尝试打开它时macSegmentFromSSID为零。 试试

if let setupDevice = self.unconfiguredDevices.value.first(where: { Device in Device.macEnd ==  macSegment}) {
            setupDevice.unconfiguredDevice = unconfiguredDevice
        }