Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 显示CoreData SwiftUI中当前日期输入数据的唯一列表_Ios_Swift_Database_Core Data_Swiftui - Fatal编程技术网

Ios 显示CoreData SwiftUI中当前日期输入数据的唯一列表

Ios 显示CoreData SwiftUI中当前日期输入数据的唯一列表,ios,swift,database,core-data,swiftui,Ios,Swift,Database,Core Data,Swiftui,有人能解决代码只显示今天的日期输入数据从这个案件。我把代码的细节放在下面(阅读注释指南),可能问题出在fetch请求和我想要显示数据的每个内部滚动视图上。如果需要任何细节,让我知道 获取请求 @FetchRequest( entity: ExpenseLog.entity(), sortDescriptors: [ NSSortDescriptor(keyPath: \ExpenseLog.date, ascending: false) ] ,

有人能解决代码只显示今天的日期输入数据从这个案件。我把代码的细节放在下面(阅读注释指南),可能问题出在fetch请求和我想要显示数据的每个内部滚动视图上。如果需要任何细节,让我知道

获取请求

  @FetchRequest(
    entity: ExpenseLog.entity(),
    sortDescriptors: [
        NSSortDescriptor(keyPath: \ExpenseLog.date, ascending: false)
    ]
    ,predicate: NSPredicate(value: Calendar.current.isDateInToday(Date()))
) //here i dont know what to put to show the today inputted data
private var result: FetchedResults<ExpenseLog>
HomeView()(完整代码)

@Environment(\.managedObjectContext)变量moc
@FetchRequest(实体:Profile.entity(),SortDescriptor:[NSSortDescriptor(keyPath:\Profile.namaUser,升序:true),
NSSortDescriptor(键路径:\Profile.limitHarian,升序:true),
NSSortDescriptor(键路径:\Profile.photo,升序:true)
]
)变量配置文件:FetchedResults
@状态变量photoUser:Data=.init(计数:0)
@环境(\.managedObjectContext)
变量上下文:NSManagedObjectContext
@获取请求(
实体:ExpenseLog.entity(),
sortDescriptors:[
NSSortDescriptor(键路径:\ExpenseLog.date,升序:false)
]
,谓词:NSPredicate(值:Calendar.current.isDateInToday(Date())
)//这里我不知道用什么来显示今天输入的数据
私有变量结果:FetchedResults
让hour=Calendar.current.component(.hour,from:Date())
@状态变量pengeluaranharini=“250.000”
枚举基表{
病例资料
案例补充
}
@状态变量isSheet:Bool=false
@状态变量homeSheet:homeSheet=.Profile
var body:一些观点{
GeometryReader{中的几何体
VStack
{
HStack{
焦面
{
图像(“kotakcardgreeting”).resizable()
.frame(宽度:geometry.frame(in:.global)。宽度、高度:geometry.frame(in:.global)。高度/4)
.偏移量(y:-50)
HStack{
VStack(对齐:。前导){
文本(“\(getGreeting()),”)
.font(.system(大小:22))
.fontWeight(.semibold).foregroundColor(Color.init(#colorLiteral(红色:1,绿色:0.8886657,蓝色:0.7034975886,alpha:1)))。填充(.top,40)
ForEach(self.profiles,id:\.self)
{profilNama in
文本(\(profilNama.namaUser??))
.font(.system(大小:22))
.fontWeight(.semibold).foregroundColor(Color.init(#colorLiteral(红色:1,绿色:0.8886657,蓝色:0.7034975886,alpha:1)))。填充(.top,1)
}
文本(“Jangan lupa catat pengeluaranmu hari ini”)
.font(.system(大小:17)).fontWeight(.semibold).foregroundColor(.white)
.padding(.top,10)
}.padding()
垫片()
ForEach(self.profiles,id:\.self)
{profilPhoto in
VStack{
图像(uiImage:uiImage(数据:profilPhoto.photo→self.photoUser)!).resize().frame(宽度:55,高度:55)。scaledToFit().overlay(圆圈().stroke)(Color.init(#colorLiteral(红色:1,绿色:0.888686657,蓝色:0.7034975886,α:1)),线宽:5)).clipShape(椭圆()).shape(颜色:Color.init(#colorLiteral)(红色:1,绿色:0.888686657,蓝色:0.7034975886,阿尔法:1)),半径:5){
}.padding()
}
}
}.偏移量(y:-60)
图像(“bigaddbutton”).resizeable()
.aspectRatio(内容模式:.fit)
.frame(宽度:geometry.frame(in:.global).width/4,height:geometry.frame(in:.global.height/8).ontaps{
self.isSheet=true
self.homeSheet=homeSheet.Add
}
.padding(.top,100)
}
}
垫片()
HStack{
ZStack{
图像(“cardstatus”)。可调整大小()
.aspectRatio(内容模式:.fit)
.frame(宽度:geometry.frame(in:.global)。宽度、高度:geometry.frame(in:.global)。高度/4)
HStack
{
垫片()
如果self.result.count==0
{
正文(“”)
}
其他的
{
文本(“Rp\(self.pengeluaranharini),00。”)
.font(.system(大小:20))
.fontWeight(.bold).foregroundColor(.white).multilineTextAlignment(.training).padding(.top,40)
}
垫片()
如果self.profiles.count==0
{
正文(“”)
}
其他的
{
ForEach(self.profiles,id:\.self)
                            if self.result.count == 0
                        {
                            DaftarTransaksiEmpty()
                        }
                        else
                        {
                            VStack
                                {
                                    // i want to put list of the only today inputted data here
                                    ForEach(self.result)
                                    {
                                        (log: ExpenseLog) in



                                        ZStack{
                                        HStack(spacing: 16) {
                                                               CategoryImageView(category: log.categoryEnum)
                                                               VStack(alignment: .leading, spacing: 8) {
                                                                   Text(log.nameText).font(.headline)
                                                                   Text(log.dateText).font(.subheadline)
                                                               }
                                                               Spacer()
                                                               Text(log.amountText).font(.headline)

                                        } .padding(.vertical, 8) .padding(.horizontal,4)
                                          }

                                    }
                            }.background(Rectangle().foregroundColor(Color.init(#colorLiteral(red: 1, green: 1, blue: 1, alpha: 1))).edgesIgnoringSafeArea(.all))
                        }
@Environment(\.managedObjectContext) var moc


@FetchRequest(entity: Profile.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Profile.namaUser, ascending: true),
    NSSortDescriptor(keyPath: \Profile.limitHarian, ascending: true),
    NSSortDescriptor(keyPath: \Profile.photo, ascending: true)
    ]
) var profiles : FetchedResults<Profile>

@State var photoUser : Data = .init(count: 0)


 @Environment(\.managedObjectContext)
 var context: NSManagedObjectContext



@FetchRequest(
    entity: ExpenseLog.entity(),
    sortDescriptors: [
        NSSortDescriptor(keyPath: \ExpenseLog.date, ascending: false)
    ]
    ,predicate: NSPredicate(value: Calendar.current.isDateInToday(Date()))
) //here i dont know what to put to show the today inputted data
private var result: FetchedResults<ExpenseLog>


let hour = Calendar.current.component(.hour, from: Date()) 

@State var pengeluaranhariini = "250.000"



enum HomeSheet{
    case Profile
    case Add
}

@State var isSheet : Bool = false
@State var homeSheet : HomeSheet = .Profile




var body: some View {


    GeometryReader { geometry in
        VStack
            {

                HStack{
                    ZStack
                        {
                            Image("kotakcardgreeting") .resizable()

                                .frame(width: geometry.frame(in: .global).width, height: geometry.frame(in: .global).height/4)
                                .offset(y: -50)

                            HStack{


                                                VStack(alignment: .leading){


                                                Text("\(getGreeting()),")
                                                        .font(.system(size: 22))
                                                        .fontWeight(.semibold).foregroundColor(Color.init(#colorLiteral(red: 1, green: 0.888686657, blue: 0.7034975886, alpha: 1))) .padding(.top, 40)

                                            ForEach(self.profiles, id: \.self)
                                                                                            { profilNama in
                                                Text("\(profilNama.namaUser ?? "")")
                                                          .font(.system(size: 22))
                                                          .fontWeight(.semibold).foregroundColor(Color.init(#colorLiteral(red: 1, green: 0.888686657, blue: 0.7034975886, alpha: 1))) .padding(.top, 1)
                                                    }


                                                      Text("Jangan lupa catat pengeluaranmu hari ini")
                                                          .font(.system(size: 17)).fontWeight(.semibold).foregroundColor(.white)
                                                          .padding(.top, 10)



                                                  }.padding()




                                Spacer()

                          ForEach(self.profiles, id: \.self)
                            { profilPhoto in
                                    VStack{
                                        Image(uiImage: UIImage(data: profilPhoto.photo ?? self.photoUser)!).resizable().frame(width: 55, height: 55).scaledToFit().overlay(Circle().stroke(Color.init(#colorLiteral(red: 1, green: 0.888686657, blue: 0.7034975886, alpha: 1)), lineWidth: 5)).clipShape(Ellipse()).shadow(color: Color.init(#colorLiteral(red: 1, green: 0.888686657, blue: 0.7034975886, alpha: 1)), radius: 5).onTapGesture {

                                        }.padding()


                                    }

                                }
                            }.offset(y: -60)


                            Image("bigaddbutton") .resizable()
                                .aspectRatio(contentMode: .fit)
                                .frame(width: geometry.frame(in: .global).width/4, height: geometry.frame(in: .global).height/8) .onTapGesture {
                                    self.isSheet = true
                                    self.homeSheet = HomeSheet.Add

                            }
                            .padding(.top, 100)

                    }
                }

                Spacer()



                HStack {
                    ZStack {
                        Image("cardstatus") .resizable()
                            .aspectRatio(contentMode: .fit)
                            .frame(width: geometry.frame(in: .global).width, height: geometry.frame(in: .global).height/4)
                        HStack
                            {
                                Spacer()
                                if self.result.count == 0
                                {
                                    Text(" ")
                                }
                                else
                                {
                                    Text("Rp \(self.pengeluaranhariini),00.")
                                                                       .font(.system(size: 20))
                                                                       .fontWeight(.bold).foregroundColor(.white) .multilineTextAlignment(.trailing) .padding(.top, 40)
                                }


                                Spacer()

                                if self.profiles.count == 0
                                {
                                    Text(" ")
                                }
                                else
                                {
                                    ForEach(self.profiles, id: \.self)
                                    { profilLimit in
                                        Text(("Rp \(profilLimit.limitHarian ?? ""),00."))
                                        .font(.system(size: 20)).fontWeight(.bold) .foregroundColor(.white) .multilineTextAlignment(.trailing)
                                        .padding(.top, 40)
                                    }

                                }

                                Spacer()
                        }

                    }
                }


                Spacer()

                HStack
                    {

                        Text("Daftar Pengeluaran Hari Ini")
                            .font(.system(size: 17)).fontWeight(.bold).foregroundColor(Color.init(#colorLiteral(red: 0, green: 0, blue: 0, alpha: 1))) .multilineTextAlignment(.leading)

                        Spacer()

                        Button(action: {
                            self.isSheet = true
                            self.homeSheet = HomeSheet.Add
                        }) {
                            Text("Tambah")
                                .font(.system(size: 17)).fontWeight(.bold).foregroundColor(Color.init(#colorLiteral(red: 0.1489486992, green: 0.390168488, blue: 0.555157125, alpha: 1))) .multilineTextAlignment(.leading)
                        }

                }.padding(.horizontal)

                ScrollView
                    {

                        if self.result.count == 0
                        {
                            DaftarTransaksiEmpty()
                        }
                        else
                        {
                            VStack
                                {
                                    // i want to put list of the only today inputted data here
                                    ForEach(self.result)
                                    {
                                        (log: ExpenseLog) in



                                        ZStack{
                                        HStack(spacing: 16) {
                                                               CategoryImageView(category: log.categoryEnum)
                                                               VStack(alignment: .leading, spacing: 8) {
                                                                   Text(log.nameText).font(.headline)
                                                                   Text(log.dateText).font(.subheadline)
                                                               }
                                                               Spacer()
                                                               Text(log.amountText).font(.headline)

                                        } .padding(.vertical, 8) .padding(.horizontal,4)
                                          }

                                    }
                            }.background(Rectangle().foregroundColor(Color.init(#colorLiteral(red: 1, green: 1, blue: 1, alpha: 1))).edgesIgnoringSafeArea(.all))
                        }








                }


        }.background(Rectangle().foregroundColor(Color.init(#colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1))).edgesIgnoringSafeArea(.all))

        .sheet(isPresented: self.$isSheet) {

                          if self.homeSheet == HomeSheet.Profile{
                            ProfileFilled().environment(\.managedObjectContext, self.moc)

            }
            else if self.homeSheet == HomeSheet.Add{
            LogFormView(context: self.context)

            }

        }



    }
}
@FetchRequest(entity: Profile.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Profile.namaUser, ascending: true),
NSSortDescriptor(keyPath: \Profile.limitHarian, ascending: true),
NSSortDescriptor(keyPath: \Profile.photo, ascending: true)
], predicate: NSPredicate(format: "date == %@", Date())) var profiles : FetchedResults<Profile>
struct Today: View {
@Environment(\.managedObjectContext) private var viewContext
@FetchRequest var reminder: FetchedResults<CDReminder>
init(){
    var calendar = Calendar.current
    calendar.timeZone = NSTimeZone.local
    let dateFrom = calendar.startOfDay(for: Date()) // eg. 2016-10-10 00:00:00
    let dateTo = calendar.date(byAdding: .day, value: 1, to: dateFrom)
    let predicate = NSPredicate(format : "date <= %@ AND  date >= %@", dateTo! as CVarArg, dateFrom as CVarArg)
self._reminder = FetchRequest(
    entity: CDReminder.entity(),
    sortDescriptors: [NSSortDescriptor(keyPath: \CDReminder.date, ascending: false)],
    predicate: predicate)
}