0
我部分遵循Ray Wenderlich的this教程(如果您搜索'保存运行',它应跳转到与此问题有关的部分)。我也用'Swift'标记了这个标签,因为我不知道它是否快速导致任何问题(因为它在ObjC的教程中工作)。NSOrderedSet不可转换为NSManagedObject
我目前坚持将位置数据保存到CoreData数据模型中。
这里我saveSession方法的代码:
func saveSession()
{
var newSession: Session = NSEntityDescription.insertNewObjectForEntityForName("Session", inManagedObjectContext: self.managedObjectContext!) as Session
newSession.timestamp = NSDate()
var tempArray = [AnyObject]()
for newLocation in self.locationsArray {
var location: Location = NSEntityDescription.insertNewObjectForEntityForName("Location", inManagedObjectContext: self.managedObjectContext!) as Location
location.timestamp = newLocation.timestamp
location.latitude = newLocation.coordinate.latitude
location.longitude = newLocation.coordinate.longitude
location.altitude = newLocation.altitude
location.heading = newLocation.heading
location.horizontalAccuracy = newLocation.horizontalAccuracy
location.verticalAccuracy = newLocation.verticalAccuracy
tempArray.append(location)
}
// This is the line producing the error:
// 'NSOrderedSet' is not convertible to 'NSManagedObject'
newSession.locations = NSOrderedSet(array: tempArray)
}
这里是我的数据模型:
会话实体
位置实体
让我知道如果任何需要更多的代码/信息来解决这个问题。任何帮助是极大的赞赏。
我在会话关系中这样做了,我认为这将是一个可以做到的事情......任何方法,如果我将位置更改为“多对多”并勾选“已排序”,它不会使错误消失 – Chris 2014-10-10 11:26:19
@Chris:你是否重新创建了托管对象子类文件? – 2014-10-10 11:31:16
我现在做了,而且工作。非常感谢马丁! :-) – Chris 2014-10-10 11:37:44