我目前正在与CoreData一起练习,并与我在网上找到的项目一起工作。我在一个项目上遇到错误,但在另一个项目上却没有。但是我不清楚这个问题可能是什么。
func saveRun()
{
let savedRun = NSEntityDescription.insertNewObjectForEntityForName( "Run", inManagedObjectContext: managedObjectContext!) as! Run
savedRun.distance = distance
savedRun.duration = seconds
savedRun.timestamp = NSDate()
var savedLocations = [Location]()
for location in locations
{
let savedLocation = NSEntityDescription.insertNewObjectForEntityForName( "Location", inManagedObjectContext: managedObjectContext! ) as! Location
savedLocation.timestamp = location.timestamp
savedLocation.latitude = location.coordinate.latitude
savedLocation.longitude = location.coordinate.longitude
savedLocations.append( savedLocation )
}
savedRun.locations = NSOrderedSet(array: savedLocations)
}
我的问题很简单,为什么为什么不能在一个项目中为属性位置分配NSOrderedSet的值,而在另一个项目中却可以?我该如何解决这个问题呢?
最佳答案
我很确定CoreData根本不支持NSOrderedSet。它可能支持NSSet进行一对多关系。 NSSorderedSet是一个有趣的类,它使您可以将项目视为一个集合,同时能够同时对其进行索引,并且很少使用。