gpt4 book ai didi

swift - 从 Core Data 取数据只返回一个值

转载 作者:行者123 更新时间:2023-11-28 06:20:14 25 4
gpt4 key购买 nike

我有这两个功能

//function for updating the group list groupIds
func updateFriendGroupList(friendId: String, groupIds: [String]) {

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

let friendGroups = FriendGroups(context: context)

for i in 0..<groupIds.count {
friendGroups.friendId = friendId
friendGroups.groupId = groupIds[i]
}

(UIApplication.shared.delegate as! AppDelegate).saveContext()
}


//function for fetching group list groupIds
func fetchFriendGroupList(friendId: String) -> ([String]) {
var groupIds = [String]()

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

self.fetchFriendGroupListEntity.removeAll()

do {
self.fetchFriendGroupListEntity = try context.fetch(FriendGroups.fetchRequest())
} catch {
print("Fetching Failed")
}

for i in 0..<self.fetchFriendGroupListEntity.count {
if self.fetchFriendGroupListEntity[i].friendId == friendId {
groupIds.append(self.fetchFriendGroupListEntity[i].groupId!)
}
}
//returns an array containing groupIds
return groupIds
}

我已经检查了保存在 updateFriendGroupList 中的 groupIds 的数量。比方说 2。但在我的检索函数中,计数始终为 1。

尽管保存了多个 groupId,但每次获取它们时我只得到 1 个 groupId。我错过了什么?

最佳答案

在这种情况下,您只创建一个 NSManagedObject 实例,并为同一个对象设置不同的值。要解决你的问题,你应该修改你的第一个方法

func updateFriendGroupList(friendId: String, groupIds: [String]) {

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext


for i in 0..<groupIds.count {
let friendGroups = FriendGroups(context: context) //here
friendGroups.friendId = friendId
friendGroups.groupId = groupIds[i]
}

(UIApplication.shared.delegate as! AppDelegate).saveContext()
}

关于swift - 从 Core Data 取数据只返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43844779/

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