gpt4 book ai didi

swift - 如何快速从核心数据中删除对象

转载 作者:行者123 更新时间:2023-11-30 10:40:25 24 4
gpt4 key购买 nike

我正在学习 swift,当我尝试从 CoreData 删除对象时遇到问题

我的应用程序有两个页面,一个页面是搜索(搜索食谱),另一个是最喜欢的页面(我放置我最喜欢的食谱)

当我在搜索页面中查看菜谱的详细信息时,我可以在收藏夹中添加和删除菜谱(一切正常),但是当我不想从收藏夹页面中删除收藏夹时,我的应用程序崩溃并显示“展开可选内容时发现 nil”

var storage = RecipeStorageManager()

var recipeDetail: Hit!

var recipe: RecipeToSave

var isFavorite: Bool {
return storage.fetchAll().contains(where: { $0.url == self.recipeDetail.recipe.url })
}

let request: NSFetchRequest<RecipeToSave> = RecipeToSave.fetchRequest()



@objc func favTapped(_ sender: Any!) {
if isFavorite == true {
print("favvv")
removeFromFav()
} else {
addToFav()
navigationItem.rightBarButtonItem?.tintColor = .green
}
}


func addToFav() {
recipe = storage.insertRecipe(label: recipeDetail.recipe.label,
url: recipeDetail.recipe.url,
image: recipeDetail.recipe.image,
ingredientLines: recipeDirections.text,
totalTime: recipeDetail.recipe.totalTime)
print("added fav")

storage.save()
}


func removeFromFav() {
storage.remove(recipeID: recipe.objectID)
print("removed")
storage.save()
navigationController?.popViewController(animated: true)
}

最佳答案

你说的是

var recipeDetail: Hit!
var isFavorite: Bool {
return storage.fetchAll().contains(where: { $0.url == self.recipeDetail.recipe.url })
}

因此,每当您在代码中说 recipeDetailisFavorite 时,如果 recipeDetailnil,您就会崩溃.

关于swift - 如何快速从核心数据中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56937150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com