大佬教程收集整理的这篇文章主要介绍了除了 FetchedData 之外,CoreData FetchRequest 正在加载带有可选结果数据的列表,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在 adminVIEw 结构中调用 @Fetchrequest,我希望在其中使用 ForEach 显示列表中的数据。我正在请求所有用户实体数据,但是当我运行应用程序时,列表显示了我的 2 个现有条目结果,但它还显示了大约 40 个条目,由于某种原因默认为可选字符串“TEST”。
我想了解如何让列表只显示两个用户条目而不显示列表中的默认字符串。
非常感谢!
相关代码如下:
import Foundation
import CoreData
extension User {
@nonobjc public class func fetchrequest() -> NSFetchrequest<User> {
return NSFetchrequest<User>(entityname: "User")
}
@Nsmanaged public var admin: Bool
@Nsmanaged public var company: String?
@Nsmanaged public var name: String?
@Nsmanaged public var password: String?
@Nsmanaged public var photo: Data?
@Nsmanaged public var username: String?
@Nsmanaged public var ID: UUID?
@Nsmanaged public var tickets: NSSet?
}
// MARK: Generated accessors for tickets
extension User {
@objc(addTicketsObject:)
@Nsmanaged public func addToTickets(_ value: Ticket)
@objc(removeTicketsObject:)
@Nsmanaged public func removeFromTickets(_ value: Ticket)
@objc(addTickets:)
@Nsmanaged public func addToTickets(_ values: NSSet)
@objc(removeTickets:)
@Nsmanaged public func removeFromTickets(_ values: NSSet)
}
extension User : IDentifiable {
}
extension User {
static func getAllUsers() -> NSFetchrequest<User> {
let request:NSFetchrequest<User> = User.fetchrequest()
let sortDescriptor = NSSortDescriptor(keyPath: \User.company,ascending: falsE)
request.sortDescriptors = [sortDescriptor]
return request
}
}
import SwiftUI
struct adminVIEw: VIEw {
@Environment(\.managedobjectContext) var moc
@EnvironmentObject var goToContentVIEw: movetoContentVIEw
@Observedobject var SELEctedUser : User
@State var SELEctedImageArray : [UIImage]
@Fetchrequest(fetchrequest: User.getAllUsers()) var allUsers:FetchedResults<User>
var body: some VIEw {
List{
ForEach(self.allUsers) { user in
vstack{
Text(user.company ?? "TEST")
}
}
}
.toolbar(content: {
Editbutton()
})
.animation(.default)
.navigationbarBACkbuttonHIDden(true)
.navigationtitle("admin")
.navigationbarItems(leading: button(action: {
if self.goToContentVIEw.goToVIEwFromLogin == true {
self.goToContentVIEw.goToVIEwFromLogin = false
} else {
self.goToContentVIEw.goToVIEwFromregister = false
}
}) {
HStack {
Text("Sign Out")
}
},Trailing: HStack{
Image(systemname: "bell")
.Font(.system(size: 30))
Image(uiImage: SELEctedImageArray.first!)
.resizable()
.scaledToFit()
.clipShape(Circle())
.frame(wIDth: 50,height: 50)
Text(SELEctedUser.name!)
.Font(.system(size: 20))
})
}
}
向列表添加过滤器。您还可以使用 let 代替 nil-coalescing 运算符。不需要 VStack,因为文本都在列表中。
List {
ForEach(self.allUsers.filter({ $0.company != nil })) { user in
if let company = user.company {
Text(company)
}
}
}
以上是大佬教程为你收集整理的除了 FetchedData 之外,CoreData FetchRequest 正在加载带有可选结果数据的列表全部内容,希望文章能够帮你解决除了 FetchedData 之外,CoreData FetchRequest 正在加载带有可选结果数据的列表所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。