我尝试将数组var upKNOArray: [Int] = []
保存到CoreData中的Transformable
。
它使用此代码成功保存:
let appDel : AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context : NSManagedObjectContext = appDel.managedObjectContext!
let entity = NSEntityDescription.entityForName( "SavedData", inManagedObjectContext: context )
var newItem = data( entity: entity!, insertIntoManagedObjectContext: context )
var error : NSError?
newItem.upKNOs = upKNOArray
newItem.downKNOs = downKNOArray
if !context.save(&error) {
NSLog("Unresolved error \(error), \(error!.userInfo)")
}
问题是当应用程序再次运行并尝试使用以下代码加载时获取CoreData:
func fetchCoreData(){
var error : NSError?
let appDel : AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context : NSManagedObjectContext = appDel.managedObjectContext!
let fetchRequest = NSFetchRequest(entityName:"SavedData")
let fetchedResults = context.executeFetchRequest(fetchRequest, error: &error) as [data]?
if let resultsArray = fetchedResults {
if resultsArray.count > 0 {
let newItem = resultsArray[0] as data
clientID = newItem.userid
upKNOArray = newItem.upKNOs // THIS IS WHERE THE CRASH HAPPENS
downKNOArray = newItem.downKNOs as [Int]
NSLog("Saved data is \(newItem.userid)")
}
}
我评论了在运行时接收错误的行。
错误是:Thread 1: EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP, subcode=0x0)
有谁知道我做错了什么?存储的数据是否会导致出现此问题,或者我是如何获取的?任何帮助表示赞赏。
答案 0 :(得分:1)
我决定不将实际数组存储在CoreData中,而是将array.description
存储在String
中并创建了一个句柄,将String
转换回数组。