如何根据在 SwiftUI 中添加的日期对我的 NSSet 数组进行排序?
How do I sort my NSSet Array for date added in SwiftUI?
这是我的Group+CoreDataProperty。我目前正在使用 postName 按字母顺序排序。现在我想按添加日期排序。我该如何更改?
extension Group {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Group> {
return NSFetchRequest<Group>(entityName: "Group")
}
@NSManaged public var groupThumbnail: Data?
@NSManaged public var groupTitle: String?
@NSManaged public var home: Home?
@NSManaged public var posts: NSSet?
public var postsArr: [Post] {
let set = posts as? Set<Post> ?? []
return set.sorted {
[=10=].postName ?? "" < .postName ?? ""
}
}
}
我试过替换 $0.postName ?? "" < $1.postName ?? “”与:
$0.postDate ?? "" < $1.postDate ?? “”。但是我应该用什么替换“”?
感谢您的帮助!
如果 postDate
是类型 Date
你可以做
[=10=].postDate ?? Date() < .postDate ?? Date()
??后的值定义当主值为 nil
时使用的内容,因此它始终必须与原始属性的类型相匹配。当 String
它必须是一个字符串,例如""
,当日期必须是日期。如果值为 nil
,Date()
将 return 当前日期 – 无论如何不应该是这种情况。
在 SwiftUI 中,您将使用 @FetchRequest
属性 包装器来获取 Post
实体,其谓词匹配 group
(即 Group
的 posts
关系)和 dateAdded
.
的排序描述符
这是我的Group+CoreDataProperty。我目前正在使用 postName 按字母顺序排序。现在我想按添加日期排序。我该如何更改?
extension Group {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Group> {
return NSFetchRequest<Group>(entityName: "Group")
}
@NSManaged public var groupThumbnail: Data?
@NSManaged public var groupTitle: String?
@NSManaged public var home: Home?
@NSManaged public var posts: NSSet?
public var postsArr: [Post] {
let set = posts as? Set<Post> ?? []
return set.sorted {
[=10=].postName ?? "" < .postName ?? ""
}
}
}
我试过替换 $0.postName ?? "" < $1.postName ?? “”与:
$0.postDate ?? "" < $1.postDate ?? “”。但是我应该用什么替换“”?
感谢您的帮助!
如果 postDate
是类型 Date
你可以做
[=10=].postDate ?? Date() < .postDate ?? Date()
??后的值定义当主值为 nil
时使用的内容,因此它始终必须与原始属性的类型相匹配。当 String
它必须是一个字符串,例如""
,当日期必须是日期。如果值为 nil
,Date()
将 return 当前日期 – 无论如何不应该是这种情况。
在 SwiftUI 中,您将使用 @FetchRequest
属性 包装器来获取 Post
实体,其谓词匹配 group
(即 Group
的 posts
关系)和 dateAdded
.