使用“__kindof NSManagedObject * _Nonnull”类型的表达式初始化“NSEntityDescription *”的不兼容指针类型

Posted

技术标签:

【中文标题】使用“__kindof NSManagedObject * _Nonnull”类型的表达式初始化“NSEntityDescription *”的不兼容指针类型【英文标题】:Incompatible pointer types initializing 'NSEntityDescription *' with an expression of type '__kindof NSManagedObject * _Nonnull' 【发布时间】:2016-04-09 21:13:08 【问题描述】:

一切正常,但我收到此通知

并尝试搜索以找到解决方案,但没有运气

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = appDelegate.managedObjectContext ;
NSString *title = [[Picker delegate]pickerView:Picker titleForRow:[Picker selectedRowInComponent:1] forComponent:1];

NSEntityDescription *entity = [NSEntityDescription insertNewObjectForEntityForName:@"History" inManagedObjectContext:context];

【问题讨论】:

【参考方案1】:

在这一行:

NSEntityDescription *entity = [NSEntityDescription insertNewObjectForEntityForName:@"History" inManagedObjectContext:context];

您调用的方法返回一个NSManagedObject 的实例。您将其分配给NSEntityDescription 类型的变量。这就是消息告诉您的内容。

【讨论】:

那么如何声明NsEntityDescription 您可以在NSManagedObjectModel 中查找它,但这很少有必要或有用。你想在这里做什么?看起来您想要创建实体的新实例。如果是这样,那么您在该行使用错误的变量类型 except 做的一切都是正确的。该行创建了一个NSManagedObject,这就是您想要的。

以上是关于使用“__kindof NSManagedObject * _Nonnull”类型的表达式初始化“NSEntityDescription *”的不兼容指针类型的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)