得到奇怪的线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x9)swift中的崩溃错误
Posted
技术标签:
【中文标题】得到奇怪的线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x9)swift中的崩溃错误【英文标题】:getting strange Thread 1: EXC_BAD_ACCESS (code=1, address=0x9) crash error in swift 【发布时间】:2019-10-13 14:28:46 【问题描述】:我正在为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
【问题讨论】:
这看起来真的是 Xcode 11.1 或 swift 5.1 中的一个错误 【参考方案1】:我不知道为什么会发生这种情况,也不知道为什么下面的解决方案适用。如果有人有更多信息,我会很高兴知道。
解决方案
在 Xcode 中检查 Allow testing Host Application APIs
的测试目标,修复了错误。
【讨论】:
以上是关于得到奇怪的线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x9)swift中的崩溃错误的主要内容,如果未能解决你的问题,请参考以下文章
当在两个布局之间快速切换使用 UISegmentedControl 时,我得到一个线程 1 exc_bad_access code=2 错误
React Native Facebook Flipper 线程 9:EXC_BAD_ACCESS(代码=1,地址=0x20...1)
线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x8000000000000010)
为啥我在 NSTimer 选择器中得到 EXC_BAD_ACCESS?
NSURLConnectionLoader 线程中的奇怪崩溃
使用 Restkit MainQueueManagedObjectContext 的奇怪崩溃 - EXC_BAD_ACCESS