- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在从 Core Data 获取数据时遇到问题。如果我的术语不具体或不准确,我很抱歉,但我是 Core Data 的新手。
我正在使用 Xcode 7 beta 和 Swift 2。设备操作系统设置为 8.4。
行:
let result = try managedContext.executeFetchRequest(dogFetch) as [Dog]?
给我这个错误:“'[AnyObject]' is not convertible to '[Dog]?'”。
完整代码在这里:
do {
let dogEntity = NSEntityDescription.entityForName("Dog", inManagedObjectContext: managedContext)
let dog = Dog(entity: dogEntity!, insertIntoManagedObjectContext: managedContext)
let dogName = "Fido"
let dogFetch = NSFetchRequest(entityName: "Dog")
dogFetch.predicate = NSPredicate(format: "name == %@", dog)
let result = try managedContext.executeFetchRequest(dogFetch) as [Dog]?
if let dogs = result {
if dogs.count == 0 {
currentDog = Dog(entity: dogEntity!, insertIntoManagedObjectContext: managedContext)
currentDog.name = dogName
} else {
currentDog = dogs[0]
}
}
} catch let fetchError as NSError {
print("Could not fetch \(fetchError)")
}
我附上了一张图片来展示我的 Core Data 模型的样子:
核心数据类是“标准”的,从编辑器自动创建 > 创建 NSManagedObjectSubclass:
狗+CoreDataProperties.swift:
import Foundation
import CoreData
extension Dog {
@NSManaged var name: String?
@NSManaged var walks: NSOrderedSet?
}
狗.swift:
import Foundation
import CoreData
@objc(Dog)
class Dog: NSManagedObject {
// Insert code here to add functionality to your managed object subclass
}
Walk+CoreDataProperties.swift 和 Walk.swift 基本相同。
--
编辑:所选答案解决了问题。我的想法是,这要么是 Swift 2.x 相对于 Swift 1.x 的变化,要么是我从中获取代码的教程有误。
最佳答案
你应该做的managedContext.executeFetchRequest(dogFetch) 作为? [狗]
这是因为这里的转换没有保证,所以你应该保护自己免受崩溃(通过使用 as?
进行转换。上面的语句意味着 executeFetchRequest
返回值应该被转换为[Dog]
(一个包含 Dog
实例的数组,顺便说一句,它可以为空),但只有在可能的情况下 - 否则转换将失败,您可以正确处理它在 catch 语句中。
关于swift - "' [AnyObject] ' is not convertible to ' [狗]?从CoreData取数据时'"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944913/
class Animal{} class Dog extends Animal{} class Cat extends Animal{} public class Mixer{ public
这个问题已经有答案了: memcpy() vs memmove() (11 个回答) 已关闭 8 年前。 我在这里阅读了有关 memmove 的 MSDN 文章: http://msdn.micros
我在从 Core Data 获取数据时遇到问题。如果我的术语不具体或不准确,我很抱歉,但我是 Core Data 的新手。 我正在使用 Xcode 7 beta 和 Swift 2。设备操作系统设置为
我是一名优秀的程序员,十分优秀!