关键词:
【中文标题】Swift - NSFetchRequest 错误【英文标题】:Swift - NSFetchRequest error 【发布时间】:2015-06-14 20:12:59 【问题描述】:完整代码:
import UIKit
import CoreData
class InformationViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, NSFetchedResultsControllerDelegate
@IBOutlet var recipeNameLabel: UILabel!
var recipeName: String?
@IBOutlet var recipeImageView: UIImageView!
var recipeImage: UIImage?
@IBOutlet var RecipeHowToDo: UILabel!
var howToDo: String?
@IBOutlet var recipeIngredientsTableView: UITableView!
var ingredientsListArray: [String] = []
let moc:NSManagedObjectContext? = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
var fetchedResultsController: NSFetchedResultsController?
override func viewDidLoad()
recipeNameLabel.text = recipeName
recipeImageView.image = recipeImage
fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest(), managedObjectContext: moc!, sectionNameKeyPath: nil, cacheName: nil)
fetchedResultsController?.delegate = self
fetchedResultsController?.performFetch(nil)
func fetchRequest() -> NSFetchRequest
var request = NSFetchRequest(entityName:"IngredientsList")
let sortDescriptor = NSSortDescriptor(key: "ingredient", ascending: true)
request.predicate = nil
request.sortDescriptors = [sortDescriptor]
request.fetchBatchSize = 20
return request
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return fetchedResultsController?.sections?[section].numberOfObjects ?? 0
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("ingredientCell", forIndexPath: indexPath) as! UITableViewCell
if let ingredient = fetchedResultsController?.objectAtIndexPath(indexPath) as? IngredientsList
cell.textLabel?.text = ingredient.ingredient
return cell
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath)
if editingStyle == .Delete
switch editingStyle
case .Delete:
moc?.deleteObject(fetchedResultsController?.objectAtIndexPath(indexPath) as! IngredientsList)
case .Insert:
break
case .None:
break
错误:由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“NSFetchRequest 无法找到实体名称“IngredientsList”的 NSEntityDescription”
任何人,有什么想法吗?
编辑
【问题讨论】:
该错误表明 CoreData 在您的模型中找不到成分列表实体 - 但您的屏幕截图显示它存在。您的上下文/持久存储协调器是否可能使用不同的模型? 也许吧。如何检查? 更新了整个代码! 您的managedObjectContexct
内置在 App Delegate 中。所以检查那里。应该有一个managedObjectModel
函数。它将给出模型的名称(通常与您的应用程序名称相同,扩展名为“.momd”)。不管它是什么名字,它都应该和你在 Xcode 中的 .xcdatamodel 文件一样。
我按照你说的做了,但又发生了一次崩溃。我更新了问题!我不知道该怎么做,这对我来说似乎是正确的。
【参考方案1】:
您是否在 Xcode 的数据建模工具中创建了一个实体,然后将其类设置为“IngredientsList”?在右侧的实用程序窗格中,它应该如下所示:
【讨论】:
看起来像这样。我更新了问题。不知道怎么回事!Swift 中 NSFetchRequest 的多个 NSPredicates?
】Swift中NSFetchRequest的多个NSPredicates?【英文标题】:MultipleNSPredicatesforNSFetchRequestinSwift?【发布时间】:2016-02-0808:45:38【问题描述】:目前,我有一个带有关联NSPredicate的简单NSFetchRequest。但是,我希望有一种方法可以附加多个谓... 查看详情
Swift NSFetchRequest 按一个属性分组
】SwiftNSFetchRequest按一个属性分组【英文标题】:SwiftNSFetchRequestgroupbyoneattribute【发布时间】:2015-11-1318:26:59【问题描述】:letfetchRequest=NSFetchRequest(entityName:"Product")fetchRequest.predicate=NSPredicate(format:"shopItem.wishList==%@ 查看详情
Swift3:将参数传递给 NSFetchRequest 方法
】Swift3:将参数传递给NSFetchRequest方法【英文标题】:Swift3:PassingparametersintoNSFetchRequestmethod【发布时间】:2016-09-1607:05:35【问题描述】:我在我的项目中使用了通用的CoreData查询方法。funcquery(table:String,searchPredicate:NSPredicate)->[An... 查看详情
Swift 3 - NSFetchRequest 不同的结果
】Swift3-NSFetchRequest不同的结果【英文标题】:Swift3-NSFetchRequestDistinctResults【发布时间】:2016-10-2211:30:08【问题描述】:任何帮助表示赞赏。Xcode自动更新到8...我的目标是IOS9.3已转换所有代码,但现在有一个问题,我在类似问题中... 查看详情
NSFetchRequest 上的 Swift2.0 CoreData 问题
】NSFetchRequest上的Swift2.0CoreData问题【英文标题】:Swift2.0CoreDataissueonNSFetchRequest【发布时间】:2015-08-0807:23:48【问题描述】:这是我试图从coredata获取数据的代码sn-p。我试图获取数据并使用断点检查,但没有数据!代码在swift2中... 查看详情
Coredata NSFetchRequest DictionaryResultType 空属性 Swift
】CoredataNSFetchRequestDictionaryResultType空属性Swift【英文标题】:CoredataNSFetchRequestDictionaryResultTypenullpropertiesSwift【发布时间】:2015-05-1211:26:01【问题描述】:大家好,我正在使用此代码从Coredata获取结果funcgetRequest(entiryDesc:NSEntityDescri... 查看详情
NSFetchRequest 无法使用 Swift、Core Data 找到 NSEntityDescription [重复]
】NSFetchRequest无法使用Swift、CoreData找到NSEntityDescription[重复]【英文标题】:NSFetchRequestcouldnotlocateanNSEntityDescriptionwithSwift,CoreData[duplicate]【发布时间】:2014-08-1103:45:36【问题描述】:当我尝试在我的一个核心数据模型上运行countForF... 查看详情
斯威夫特 2.3 NSFetchRequest
】斯威夫特2.3NSFetchRequest【英文标题】:Swift2.3NSFetchRequest【发布时间】:2016-09-1414:44:37【问题描述】:自从从2.2迁移到2.3后,我现在收到以下错误:以下代码中的“ExtraArgumentincall”:classfuncobjectCountForEntity(entityName:String,context:NSM... 查看详情
NSFetchRequest as entityName 给出错误“使用未声明的类型”
】NSFetchRequestasentityName给出错误“使用未声明的类型”【英文标题】:NSFetchRequestasentityNamegiveserror"useofundeclaredtype"【发布时间】:2016-01-1113:24:26【问题描述】:我在Swift2.1和Xcode7.2中使用Core数据此代码给了我一个找不到实... 查看详情
Swift Core Data NSFetchRequest 没有结果
】SwiftCoreDataNSFetchRequest没有结果【英文标题】:SwiftCoreDataNSFetchRequestnoresults【发布时间】:2015-02-1413:54:20【问题描述】:我在使用CoreData时遇到了问题。我有这个名为“Test.xcdatamodeld”的核心数据模型,它只包含一个名为“Data”... 查看详情
如何将类型应用于 NSFetchRequest 实例?
】如何将类型应用于NSFetchRequest实例?【英文标题】:HowtoapplythetypetoaNSFetchRequestinstance?【发布时间】:2016-06-1411:39:59【问题描述】:在Swift2中,以下代码可以正常工作:letrequest=NSFetchRequest(entityName:String)但在Swift3中会报错:无法... 查看详情
如何将类型应用于 NSFetchRequest 实例?
】如何将类型应用于NSFetchRequest实例?【英文标题】:HowtoapplythetypetoaNSFetchRequestinstance?【发布时间】:2016-06-1411:39:59【问题描述】:在Swift2中,以下代码可以正常工作:letrequest=NSFetchRequest(entityName:String)但在Swift3中却报错:无法... 查看详情
Swift 3 核心数据
...时间】:2016-09-1517:41:15【问题描述】:尝试在Swift3中执行NSFetchRequest时出现以下错误Genericparameter\'ResultType\'couldnotbeinferred我检查了很多链接,但我无法弄清楚如何解决它。这就是我正在做的事情ViewController.swiftfuncloadData()letreques 查看详情
Swift:将 CoreData 获取为数组
...这样做:funcGetAllData()->NSArrayvarerror:NSError?=nil;varrequest:NSFetchRequest=NSFetchRequest(entityName:"Lo 查看详情
存储的 NSFetchRequest 返回错误“获取请求必须具有实体”
】存储的NSFetchRequest返回错误“获取请求必须具有实体”【英文标题】:StoredNSFetchRequestreturnserror"Afetchrequestmusthaveanentity"【发布时间】:2011-08-1915:19:46【问题描述】:我在数据模型中向我的实体添加了一个获取的属性。我... 查看详情
用 NSFetchRequest => [array count] 填充 NSArray 错误
】用NSFetchRequest=>[arraycount]填充NSArray错误【英文标题】:FillNSArraywithNSFetchRequest=>[arraycount]wrong【发布时间】:2011-12-0611:51:45【问题描述】:我有一个自定义的NSManagedObject,它有几个属性。我alloc和init对象的两个实例:compare1... 查看详情
NSFetchRequest 具有一对一关系属性 == YES 谓词错误地获取每个实体
】NSFetchRequest具有一对一关系属性==YES谓词错误地获取每个实体【英文标题】:NSFetchRequestwithto-onerelationshipattribute==YESpredicateincorrectlyfetcheseveryentity【发布时间】:2014-04-1123:53:33【问题描述】:我有一个名为“IRCSessionEntry”的模型... 查看详情
NSFetchRequest 返回值
】NSFetchRequest返回值【英文标题】:NSFetchRequestreturnvalue【发布时间】:2012-03-0111:59:31【问题描述】:我不明白为什么这段代码会返回错误-(void)deleteCategoriesWithNoProductsNSFetchRequest*request=[[NSFetchRequestalloc]init];NSEntityDescription*entity=[NSEn... 查看详情