gpt4 book ai didi

ios - 核心数据 : Not casting Coredata Fetch Results to Objects

转载 作者:行者123 更新时间:2023-11-28 08:58:51 25 4
gpt4 key购买 nike

我正在开发一个 map 应用程序,但遇到了一个问题。

我似乎无法让 Coredata 将结果转换为相关的 Pin 数据。

这是我用来从 CD 下载 Pin 图的方法

    func fetchAllPins() -> [Pin] {
let error: NSErrorPointer = nil

// Create the Fetch Request
let fetchRequest = NSFetchRequest(entityName: "Pin")
fetchRequest.returnsObjectsAsFaults = false

// Execute the Fetch Request
let results = sharedContext.executeFetchRequest(fetchRequest, error: error)

// Check for Errors
if error != nil {
println("Error in fetchAllEvents(): \(error)")
}
println("RESULTS ARE")
println(results) // Gives results ( see console below)

return results as! [Pin] // Returns Blank no idea why

}

这是控制台的输出,显示正在返回数据。

   Optional([<Pin: 0x7fb9144dcf60> (entity: Pin; id: 0xd000000000040000 <x-coredata://5E886C33-FB0F-4035-9362-489A0BBFB0D9/Pin/p1> ; data: {
lat = "54.98870385960889";
long = "-2.732679843506143";
reference = 1;
}), <Pin: 0x7fb911697ee0> (entity: Pin; id: 0xd000000000080000 <x-coredata://5E886C33-FB0F-4035-9362-489A0BBFB0D9/Pin/p2> ; data: {
lat = "54.58505971892202";
long = "-1.719484882196165";
reference = 1;
})])

这是我正在使用的 Pin 对象:

    import Foundation
import MapKit
import CoreData

@objc(Pin)

class Pin : NSManagedObject {
struct Keys {
static let lat = "lat"
static let long = "long"
}
@NSManaged var lat:Double
@NSManaged var long: Double
@NSManaged var reference: NSNumber




override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
super.init(entity: entity, insertIntoManagedObjectContext: context)
println("-----")

println(entity)
}

init(llat: CLLocationDegrees, llong: CLLocationDegrees, llinksToImages: [String]?, context: NSManagedObjectContext) {

let entity = NSEntityDescription.entityForName("Pin", inManagedObjectContext: context)!
super.init(entity: entity,insertIntoManagedObjectContext: context)
lat = llat as Double
long = llong as Double
reference = 1

}

非常欢迎任何建议

最佳答案

我设法破解了它。很高兴理解为什么我的解决方案在那里不起作用,但万一有人需要它:

如果你替换:

return results as! [Pin]

而是将它插入一个它自己的解压缩结果数组中,它似乎玩得很好。例如:

var myAwesomeResults = [Pin]()
for pinItem in results{
myAwesomeResults.append(pinItem)
}
return myAwesomeResults // returns data correctly!

关于ios - 核心数据 : Not casting Coredata Fetch Results to Objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com