Ios 使用核心数据获取存储的数据
在下面的代码中,我可以使用核心数据存储数据。我存储的数据是奖励。如何从核心数据中获取奖励数据?每次向某个用户添加奖励时,我如何获得核心数据中的奖励总额?我为每个用户使用Ios 使用核心数据获取存储的数据,ios,swift,core-data,Ios,Swift,Core Data,在下面的代码中,我可以使用核心数据存储数据。我存储的数据是奖励。如何从核心数据中获取奖励数据?每次向某个用户添加奖励时,我如何获得核心数据中的奖励总额?我为每个用户使用loggedInUserHouseNumber。我如何获取奖励数据以及与该loggedInUserHouseNumber相等的奖励总额。我想得到所有的数据和总报酬等于loggedinuserhousenumber谁能提供答案 loggedInUserHouseNumber = (UserDefaults.standard.va
loggedInUserHouseNumber
。我如何获取奖励数据以及与该loggedInUserHouseNumber
相等的奖励总额。我想得到所有的数据和总报酬等于loggedinuserhousenumber谁能提供答案
loggedInUserHouseNumber = (UserDefaults.standard.value(forKey: "loggedInUserHouseNumber") as! String)
获取请求代码
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "GroceryItem")
request.returnsObjectsAsFaults = false
self.saveReward(reward: rewardInt)
您需要使用NSPredicate来查询特定的房屋号,您可以使用下面的示例代码进行尝试
let loggedInUserHouseNumber = (UserDefaults.standard.value(forKey: "loggedInUserHouseNumber") as! String)
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "GroceryItem")
//Create query
request.predicate = NSPredicate(format: "houseNo = %@", loggedInUserHouseNumber ?? "")
do {
if let models = try context.fetch(request) as? [GroceryItem] {
// You will get count
let count = models.count
var total = 0
for model in models {
total = total + model. reward
}
}
} catch let error {
// Handle error
}
让loggedInUserHouseNumber=(UserDefaults.standard.value(forKey:“loggedInUserHouseNumber”)作为!字符串)
let request=NSFetchRequest(entityName:“GroceryItem”)
//创建查询
request.predicate=NSPredicate(格式:“houseNo=%@”,loggedInUserHouseNumber??)
做{
如果let models=try context.fetch(request)as?[GroceryItem]{
//你会数到的
让count=models.count
var总计=0
对于模型中的模型{
总计=总计+模型。奖励
}
}
}捕捉错误{
//处理错误
}
您尝试过NSFetchRequest吗?是的,我尝试过。先生。您可以在这里发布您的取回方法吗?我已经更新了上面的问题。请参阅如何获取奖励总额,先生,例如,我加了10的rewar,然后我又加了一次,我怎么才能得到总数呢。。。。。这是一个错误,从这里抛出的错误无法处理请检查更新的代码中的错误。当您获得该用户的所有记录(此处为模型)时,现在必须循环并添加奖励。当保存奖励时,奖励已存储给该用户。如何获得奖励总额?例如,我加上10,然后再加上另一个奖励,即20,现在如何得到它的总数?还有使用未解析标识符“fetcher”时的错误
let loggedInUserHouseNumber = (UserDefaults.standard.value(forKey: "loggedInUserHouseNumber") as! String)
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "GroceryItem")
//Create query
request.predicate = NSPredicate(format: "houseNo = %@", loggedInUserHouseNumber ?? "")
do {
if let models = try context.fetch(request) as? [GroceryItem] {
// You will get count
let count = models.count
var total = 0
for model in models {
total = total + model. reward
}
}
} catch let error {
// Handle error
}