【发布时间】:2017-05-27 21:22:20
【问题描述】:
Swift 版本:swift3.0 目标iOS版本:10.0
我尝试为涉及核心数据的函数编写单元测试。所以我要做的第一件事就是用 NSPersistentStore 类型初始化类变量。
这是我的类变量代码
class DataProviderTests: XCTestCase {
var storeCoordinator: NSPersistentStoreCoordinator!
var managedObjectContext: NSManagedObjectContext!
var managedObjectModel: NSManagedObjectModel!
var store: NSPersistentStore!
.....
}
下面是初始化类变量的设置函数
override func setUp() {
super.setUp()
managedObjectModel = NSManagedObjectModel.mergedModelFromBundles(nil)
storeCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
do{
try store = storeCoordinator.addPersistentStoreWithType(NSInMemoryStoreType, configuration: nil, URL: nil, options: nil)
}catch let error as NSError{
print(error)
store = nil
}
.....
}
但问题是 Xcode 一直抱怨这个类没有初始化器。
Swift Compiler Error: Class 'DataProviderTests' has no initializers
我发现“存储”变量未正确初始化。
但是 addPersistanteStoreWithtype() 函数会抛出错误,我应该使用 try 和 catch 子句。但它会导致这个问题..
初始化存储类变量以解决问题的最佳方法是什么?
感谢您的帮助
【问题讨论】:
-
请发布当前正在发生的实际错误以及发生在哪一行。另外,请告诉我们目标 iOS 版本。
-
@androisojavaswift - 请参阅我修改后的答案。如果您对我有任何问题,请发表评论。
标签: ios swift xcode core-data swift3