我目前正在与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)
}

ios - 尝试为CoreData属性分配NSOrderedSet时出错-LMLPHP

我的问题很简单,为什么为什么不能在一个项目中为属性位置分配NSOrderedSet的值,而在另一个项目中却可以?我该如何解决这个问题呢?

最佳答案

我很确定CoreData根本不支持NSOrderedSet。它可能支持NSSet进行一对多关系。 NSSorderedSet是一个有趣的类,它使您可以将项目视为一个集合,同时能够同时对其进行索引,并且很少使用。

10-07 22:49