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