- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这将是使用 swift 的 CoreData 单元测试中的常见问题。 EXC_BREAKPOINT 异常是由于正常模块和测试模块之间的 swift namespace 差异而发生的。尽管介绍了一些解决方案,但我仍在努力解决这个问题。
我做了什么,我的问题就在这里。
func testExample() {
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
}
lazy var managedObjectModel: NSManagedObjectModel = {
// The managed object model for the application. This property is not optional...
let modelURL = NSBundle.mainBundle().URLForResource("CoreDataSample", withExtension: "momd")!
let managedObjectModel = NSManagedObjectModel(contentsOfURL: modelURL)!
// Check if we are running as test or not
let environment = NSProcessInfo.processInfo().environment as [String : AnyObject]
let isTest = (environment["XCInjectBundle"] as? String)?.pathExtension == "xctest"
// Create the module name
let moduleName = (isTest) ? "CoreDataSampleTests" : "CoreDataSample"
// Create a new managed object model with updated entity class names
var newEntities = [] as [NSEntityDescription]
for (_, entity) in enumerate(managedObjectModel.entities) {
let newEntity = entity.copy() as NSEntityDescription
newEntity.managedObjectClassName = "\(moduleName).\(entity.name)"
newEntities.append(newEntity)
}
let newManagedObjectModel = NSManagedObjectModel()
newManagedObjectModel.entities = newEntities
return newManagedObjectModel
}()
我想知道两件事。
如何避免 EXC_BREAKPOINT 异常。测试方法似乎正常工作,但 EXC_BREAKPOINT 异常会在每个测试方法处临时停止该过程。我每次都必须恢复它。运行测试方法非常困难。
如果无法避免 EXC_BREAKPOINT,我想在执行单元测试时忽略 EXC_BREAKPOINT 异常。
任何帮助或建议都会对我有帮助。
谢谢,
仅供引用:
Swift cannot test core data in Xcode tests? .
编辑:
XCode 版本为 6.2
最佳答案
正如 Wolfgang 所说,我认为 Jesse Squires 解决方案有效(它对我有效),但有几个步骤:
(这不是必需的,但有助于保持整洁,因为以下步骤涉及公开很多内容,如果您不将其分开,这些内容将传播到整个项目。)
您最终应该得到如下所示的实体:
import Foundation
import CoreData
@objc(ClassName)
public class ClassName: NSManagedObject {
@NSManaged public var property: Type
}
SO 答案中有一个替代方法 here这也有效。
编辑 1:添加了关于备选方案的注释。
编辑 2:传递了将核心数据移至单独模块的提示。
关于ios - Swift 核心数据单元测试 : How to avoid EXC_BREAKPOINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29313645/
当我归档我的数据时,出现了一个问题,我从未遇到过: 线程信息: 0xda5434 : bl 0xc7a6f0 ; function signature sp
我设置了一个游戏,玩家在游戏中控制飞船并射击来袭的敌人。当一个子弹和一个敌人接触时,不会崩溃,但是当两个子弹击中2个不同的敌人时,我在以下函数中崩溃了。(EXC_Breakpoint) 我该如何解决?
我在 Storyboard的 View Controller 上有一个 TableView Nib ,这样我就可以执行转场。目前,我已将第一个 Nib 放在 View Controller 上,但是当
当用户单击按钮时,将调用以下函数。 func wipeScreen() { removeGestureRecognizers() scene?.children.forEach({ (
我在 Logic X 中运行的 C++ audiounit 组件中的一些用户计算机上发生了崩溃。不幸的是,我无法在本地重复它,并且在尝试弄清楚它是如何发生的过程中我得到了一些问题。 以下是故障转储中的
我是 Swift 的新手,但我是 Objective-c 方面经验丰富的 iOS 开发人员。目前,crashlytics 已向单个用户报告了 EXC_BREAKPOINT 崩溃,但这是系统性的。我已尝
通常当我设置 lldb 观察点时,当它们被命中时,lldb 会说观察点命中旧值:新值。但是,我在一个似乎被写入第 3 方库 (libjpeg-turbo) 内部的地址上设置了一个观察点,而不是通常的观
我在 Fabric 中有这个堆栈跟踪: 我的问题:根据崩溃日志,函数“formatMessageAuthorName”是否是导致此 EXC_BREAKPOINT 崩溃的唯一原因?例如,除了此函数中的代
我们在我们的应用程序上使用介绍性价格。我们有一个问题只能在我们的两个 QA 设备之一上重现,即法国 App Store 上的 iPhone 6S (11.4.1)。另一个是 iPhone 7(带有法语
这是我为 iOS 7 更新应用程序以来一直遇到的一个新问题。每次在设备或模拟器上启动应用程序时,我都会收到此错误代码 RecipeDetailViewController scrollViewDidS
我有一个多线程应用程序,它在我的所有测试机器上都非常稳定,并且对于我的几乎每一位用户来说似乎都是稳定的(基于没有崩溃投诉)。不过,对于一位好心的用户来说,该应用程序经常崩溃,他发送了崩溃报告。所有崩溃
我在工作中发生了 EXC_BREAKPOINT 异常。 Date/Time: 2011-10-20 15:19:05.089 +0400 OS Version: iPhone O
如果有人可以花时间帮助我,我将非常感激!!! 我现在面对的是 我正在开发一个用于自动填充密码的应用程序,这意味着在网站登录期间单击键盘上方QuickType托架中的小键图标时,将触发我的应用程序。 然
我有一个基本的 tableview 设置,用于加载 JSON 数据。我正在使用 Fabric 进行崩溃报告,我尝试复制崩溃,但我可以从崩溃报告中猜测场景。 override func viewDidL
我的 UITableView 标题中有一个 UICollectionView。如果没有数据,我会删除 collectionView。我在行“self.collectionView.reloadData
我的 iOS 应用程序在测试中运行良好,但在启动时崩溃,并使用从 App Store 下载的发布版本。我已经尝试使用 Xcode 中的发布构建配置重新测试并且它没有崩溃,只是商店版本。我很确定它与应用
我在设置方法中设置了一个 var tagTextField: UITextField。稍后当我调用一个方法时,我想用这个 var tagTextField: UITextField 做一些事情,即:
我今天收到了来自 Crashlytics 的崩溃报告,我无法弄清楚问题出在哪里。我的应用已经运行了几个月没有问题,所以这似乎是一次性的。 崩溃是 Exception Type EXC_BREAKPOI
我正在 OS X Yosemite 上的 Xcode 6 中开发 Swift/Obj-C franken-app。我正在尝试在运行 iOS 8 的第 5 代 iPod Touch 上运行它。 几天前我
这是我的代码(largeAsteroids.count 永远不会为 0): var largeAsteroids=[[SKTexture]]() func randomLargeAsteroidTex
我是一名优秀的程序员,十分优秀!