我在一定程度上遵循Ray的这教程(如果您搜索“保存运行”,应该跳到有关这个问题的部分)。我也用' swift‘标记了这个,因为我不知道它是否很快会引起任何麻烦(因为它在ObjC中的教程中起作用)。
目前,我只能将位置数据保存到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)
}以下是我的数据模型:
会话实体

定位实体

如果需要更多的代码/信息来解决这个问题,请告诉我。任何帮助都是非常感谢的。
发布于 2014-10-10 11:13:22
您已经将locations属性定义为“一对一”关系。这应该是一种“多对多”的关系。然后您可以分配一个NSSet或NSOrderedSet,这取决于关系是否定义为“有序”。
https://stackoverflow.com/questions/26297954
复制相似问题