gpt4 book ai didi

ios - 排序核心数据获取(swift 4)

转载 作者:行者123 更新时间:2023-11-29 11:39:12 25 4
gpt4 key购买 nike

现在我的代码使用 NSPredicate 或排序描述符基本上只是收集一个名字。我希望 NSPredicate 对所有名称进行排序,仅此而已。

核心数据处理器

class coreDataHandler: NSObject {

private class func getContext() -> NSManagedObjectContext{

let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
class func saveObject(username:String, password:String) -> Bool{
let context = getContext()
let entity = NSEntityDescription.entity(forEntityName: "User", in: context)
let managedObject = NSManagedObject(entity: entity!, insertInto: context)

managedObject.setValue(username, forKey: "username")
managedObject.setValue(password, forKey: "password")
do {
try context.save()
return true
} catch {
return false}



}
class func filterData() -> [User]? {
let conttext = getContext()
let fetchRequest:NSFetchRequest<User> = User.fetchRequest()

var user:[User]? = nil

var predicate = NSPredicate(format: "username contains[d] %@" ,"duke")

fetchRequest.predicate = predicate
do {
user = try conttext.fetch(fetchRequest)
return user
}catch {
return user
}
}

View Controller

  user = coreDataHandler.filterData()
for i in user! {
print("Judou : \(i.username!)")
}

最佳答案

如果您希望您的 user 数组按 username 然后是 password 排序,我会向您的 CoreDataHandler 类添加一个类函数以获取排序数组:

class func getSortedData() -> [User]? {
let conttext = getContext()
let fetchRequest:NSFetchRequest<User> = User.fetchRequest()

var user:[User]? = nil

var nameSort = NSSortDescriptor(key:"username", ascending:true)
var passwordSort = NSSortDescriptor(key:"password", ascending:false)

fetchRequest.sortDescriptors = [nameSort, passwordSort]
do {
user = try conttext.fetch(fetchRequest)
return user
} catch {
return user
}
}

然后在你的 View Controller 中,使用这个新函数来获取排序后的数组:

user = coreDataHandler.getSortedData()
for i in user! {
print("Judou : \(i.username!), Password:\(i.password)")
}

关于ios - 排序核心数据获取(swift 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47540669/

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