我在CDModel.xcdatamodeld中创建了一个简单的实体'CDWorkout',其中一个属性'name'.AppDelegate中的容器名称也是"CDModel"."CDWorkout"的类Codegen是类别/扩展名.这是CDWorkout类的代码:
class CDWorkout: NSManagedObject {
class func createWorkout(workoutInfo : Workout, in context: NSManagedObjectContext) -> CDWorkout{
let workout = CDWorkout(context: context)
workout.name = "anyName"
return workout
}
}
Run Code Online (Sandbox Code Playgroud)
createWorkout函数是从另一个带有上下文参数的viewController调用的,container.viewContext但它会立即崩溃并显示消息:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'类'Workout_Generator.CDWorkout'的NSManagedObject必须具有有效的NSEntityDescription.
我忘记了什么?
我希望能够让该函数doSomething()不class B存在async并且不阻止它的调用者线程。但使用以下代码我收到此错误:
无法将“() async -> Void”类型的函数传递给需要同步函数类型的参数
并且 xcode 尝试强制该doSomething()函数class B成为async
class A {
func doSomething() async throws {
//perform
}
}
class B {
let a = A()
func doSomething() {
DispatchQueue.global().async {
do {
await try a.doSomething()
} catch {
print(error)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)