Swift - NSFetchRequest 错误

     2023-03-04     250

关键词:

【中文标题】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... 查看详情