gpt4 book ai didi

ios - 在 swift 中出现奇怪的线程 1 : EXC_BAD_ACCESS (code=1, 地址 = 0x9) 崩溃错误

转载 作者:行者123 更新时间:2023-12-01 15:44:33 26 4
gpt4 key购买 nike

我正在为 MyClass 编写单元测试.考虑以下代码:

MyClass.swift

class MyClass {    
let collectionPeriod: TimeInterval
var previousCollectDate: Date?

init(period: TimeInterval, previousCollectDate: Date?) {
self.collectionPeriod = period
self.previousCollectDate = previousCollectDate
}

func schedule() { }

func collect() { }
}

MyClassTests.swift

import XCTest
@testable import MyModule

class CollectableTests: XCTestCase {

var sut: MyClass!

override func setUp() { }

override func tearDown() {
self.sut = nil
}

func testSchedule_NotScheduledBefore_CollectExecutesAfterCollectionPeriod() {
// let _ = Collectable(period: 11, previousCollectDate: nil)

self.sut = MockCollectable(suiteName: self.testSuiteName)

self.sut?.schedule()
}
}

class MockCollectable: Collectable {

init(suiteName: String) {
super.init(period: 5.0, previousCollectDate: Date())
}
}

奇怪的事情发生在这里,当我在这种情况下执行我的测试时,我收到一个崩溃错误 self.sut = MockCollectable(suiteName: self.testSuiteName)但是当我添加(取消注释)行时 let _ = Collectable(period: 11, previousCollectDate: nil)这实际上只是创建一个在代码中未使用的实例,崩溃消失了。任何的想法?

也许调试导航器信息可能有用:
#0  0x00000001d0dd2aec in swift_checkMetadataState ()
#6 0x0000000104858398 in type metadata accessor for CollectableTests.MockCollectable ()
#7 0x00000001048582c8 in CollectableTests.testSchedule_NotScheduledBefore_CollectExecutesAfterCollectionPeriod()
#51 0x00000001c7a49d0c in UIApplicationMain ()
#52 0x00000001025882b0 in main

最佳答案

我不知道为什么会发生这种情况,也不知道为什么下面的解决方案适用于它。如果有人有更多信息,我会很高兴知道。

解决方案
检查 Allow testing Host Application APIs对于 Xcode 中的测试目标,修复了错误。

关于ios - 在 swift 中出现奇怪的线程 1 : EXC_BAD_ACCESS (code=1, 地址 = 0x9) 崩溃错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58364516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com