添加新记录的核心数据错误
core data errors adding new record
我正在使用 Xcode 6.1.1 和 Swift。该项目正在使用核心数据来保存 Sightings
import Foundation
import CoreData
@objc(Sighting)
class Sighting: NSManagedObject {
@NSManaged var lat: Double
@NSManaged var lng: Double
@NSManaged var seen_at: NSDate
}
在 IBaction 中我创建了一个新的 Sighting
@IBAction func addSighting(sender: AnyObject) {
let coordinate = locationManager.location.coordinate
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let managedContext = appDelegate.managedObjectContext!
let sighting = NSEntityDescription.insertNewObjectForEntityForName("Sighting", inManagedObjectContext: managedContext) as Sighting
sighting.lat = coordinate.latitude
sighting.lng = coordinate.longitude
...
}
在线 "let sighting =" 我收到错误 swift_dynamicCastClassUnconditional。有什么想法吗?
将行替换为
let entityDescripition = NSEntityDescription.entityForName("Sighting", inManagedObjectContext: managedContext)
let sighting = Sighting(entity: entityDescripition!, insertIntoManagedObjectContext: managedContext)
似乎解决了这个问题,但它只是导致下一行 "sighting.lat =" 给出错误 EXC_BAD_ACCESS > objc_msgSend
coordinate.latitude 正确返回 CLLocationDegrees
任何有关如何解决此问题的想法都将不胜感激。谢谢!
我怀疑您的模型没有 link 实体 "Sighting" 和 class Sighting
。 Select模型编辑器中的实体,在右侧的数据模型检查面板中输入class名称:
请注意,在 Swift 中,class 名称必须包含您的模块(应用程序)的名称。
我正在使用 Xcode 6.1.1 和 Swift。该项目正在使用核心数据来保存 Sightings
import Foundation
import CoreData
@objc(Sighting)
class Sighting: NSManagedObject {
@NSManaged var lat: Double
@NSManaged var lng: Double
@NSManaged var seen_at: NSDate
}
在 IBaction 中我创建了一个新的 Sighting
@IBAction func addSighting(sender: AnyObject) {
let coordinate = locationManager.location.coordinate
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let managedContext = appDelegate.managedObjectContext!
let sighting = NSEntityDescription.insertNewObjectForEntityForName("Sighting", inManagedObjectContext: managedContext) as Sighting
sighting.lat = coordinate.latitude
sighting.lng = coordinate.longitude
...
}
在线 "let sighting =" 我收到错误 swift_dynamicCastClassUnconditional。有什么想法吗?
将行替换为
let entityDescripition = NSEntityDescription.entityForName("Sighting", inManagedObjectContext: managedContext)
let sighting = Sighting(entity: entityDescripition!, insertIntoManagedObjectContext: managedContext)
似乎解决了这个问题,但它只是导致下一行 "sighting.lat =" 给出错误 EXC_BAD_ACCESS > objc_msgSend
coordinate.latitude 正确返回 CLLocationDegrees
任何有关如何解决此问题的想法都将不胜感激。谢谢!
我怀疑您的模型没有 link 实体 "Sighting" 和 class Sighting
。 Select模型编辑器中的实体,在右侧的数据模型检查面板中输入class名称:
请注意,在 Swift 中,class 名称必须包含您的模块(应用程序)的名称。