CoreData 抛出警告 class for entity could not be loaded
CoreData throws warning that class for entity could not be loaded
我正在 Objective-C 中编写 OS X 命令行工具,它使用来自外部框架的 CoreData 模型。该框架为核心数据模型定义了每个class。通过包含存档框架,在我的项目中引用了头文件。但是在创建一个投射到特定 NSManagedObject
class:
的 NSEntityDescription
时,我仍然收到警告
Klass entity = (Klass *)[NSEntityDescription insertNewObjectForEntityForName:@"Klass" inManagedObjectContext:context];
Xcode 在执行上面的代码时抛出以下警告:
CoreData: warning: Unable to load class named 'Klass' for entity 'Klass'. Class not found, using default NSManagedObject instead.
我搜索了解决方案,但未能找到并解决我的问题。我试图命名模型中的实体。但这是行不通的。
希望你能帮帮我。
我能够解决我的问题。最初我尝试创建一个新实体并将其转换为特定的 NSManagedObject
class.
SpecificManagedObjectClass *managedObject = (SpecificManagedObjectClass *)[NSEntityDescription insertNewObjectForEntityForName:@"SpecificManagedObjectClass" inManagedObjectContext:context];
现在针对我的具体问题的解决方案如下:
NSEntityDescription *entity = [NSEntityDescription entityForName:[SpecificManagedObjectClass className] inManagedObjectContext:context];
SpecificManagedObjectClass *managedObject = [[SpecificManagedObjectClass alloc] initWithEntity:entity insertIntoManagedObjectContext:context];
于是我写了一个辅助方法:
- (id)getManagedObjectInstanceFor:(id)managedObject in:(NSManagedObjectContext *)context {
NSEntityDescription *entity = [NSEntityDescription entityForName:[managedObject className] inManagedObjectContext:context];
return [[[managedObject class] alloc] initWithEntity:entity insertIntoManagedObjectContext:context];
}
这导致以下调用:
SpecificManagedObjectClass *managedObject = [[Utils sharedInstance] getManagedObjectInstanceFor: SpecificManagedObjectClass.class in:self.managedObjectContext];
这给了我一个特定的实例 NSManagedObject
class。
我正在 Objective-C 中编写 OS X 命令行工具,它使用来自外部框架的 CoreData 模型。该框架为核心数据模型定义了每个class。通过包含存档框架,在我的项目中引用了头文件。但是在创建一个投射到特定 NSManagedObject
class:
NSEntityDescription
时,我仍然收到警告
Klass entity = (Klass *)[NSEntityDescription insertNewObjectForEntityForName:@"Klass" inManagedObjectContext:context];
Xcode 在执行上面的代码时抛出以下警告:
CoreData: warning: Unable to load class named 'Klass' for entity 'Klass'. Class not found, using default NSManagedObject instead.
我搜索了解决方案,但未能找到并解决我的问题。我试图命名模型中的实体。但这是行不通的。
希望你能帮帮我。
我能够解决我的问题。最初我尝试创建一个新实体并将其转换为特定的 NSManagedObject
class.
SpecificManagedObjectClass *managedObject = (SpecificManagedObjectClass *)[NSEntityDescription insertNewObjectForEntityForName:@"SpecificManagedObjectClass" inManagedObjectContext:context];
现在针对我的具体问题的解决方案如下:
NSEntityDescription *entity = [NSEntityDescription entityForName:[SpecificManagedObjectClass className] inManagedObjectContext:context];
SpecificManagedObjectClass *managedObject = [[SpecificManagedObjectClass alloc] initWithEntity:entity insertIntoManagedObjectContext:context];
于是我写了一个辅助方法:
- (id)getManagedObjectInstanceFor:(id)managedObject in:(NSManagedObjectContext *)context {
NSEntityDescription *entity = [NSEntityDescription entityForName:[managedObject className] inManagedObjectContext:context];
return [[[managedObject class] alloc] initWithEntity:entity insertIntoManagedObjectContext:context];
}
这导致以下调用:
SpecificManagedObjectClass *managedObject = [[Utils sharedInstance] getManagedObjectInstanceFor: SpecificManagedObjectClass.class in:self.managedObjectContext];
这给了我一个特定的实例 NSManagedObject
class。