質問編集履歴

4

コードの修正

2022/06/09 19:19

投稿

uAd30HzDXwVQVwb
uAd30HzDXwVQVwb

スコア4

test CHANGED
File without changes
test CHANGED
@@ -173,7 +173,9 @@
173
173
  }
174
174
  func saveremove(){
175
175
  let encoder=JSONEncoder()
176
- if let encodedValue=try? encoder.encode(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish)){
176
+ let ej=Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish)
177
+ if let encodedValue=try? encoder.encode(ej){
178
+ sortarrays.append(ej)
177
179
  UserDefaults.standard.set(encodedValue,forKey:"sortkey")
178
180
  }
179
181
  array.append(selectedDate);

3

コードの修正

2022/06/09 19:12

投稿

uAd30HzDXwVQVwb
uAd30HzDXwVQVwb

スコア4

test CHANGED
File without changes
test CHANGED
@@ -30,10 +30,10 @@
30
30
  Calendarpage(selectedDate:$selectedDate,array:$array)
31
31
  Text(selectedDate,style:.date).padding()
32
32
  Button(action:{self.show=true;m1=selectedDate;m2=selectedDate}){ Text("+")}.sheet(isPresented:self.$show){SecondView(show:$show,selectedDate:$selectedDate,array:$arraynewsta,rt:$m1,newfinish:$m2,sortarrays:$sortarrays)}
33
- if(sortarrays.count==0){
33
+ if(array.count==0){
34
34
  }
35
35
  else{
36
- ForEach(0..<sortarrays.count, id:\.self){index in
36
+ ForEach(0..<array.count, id:\.self){index in
37
37
  if(equals(array[index], selectedDate)){
38
38
  Text("\(sortarrays[index].arraystart,style:.time)〜\(sortarrays[index].arrayfinish,style:.time)")
39
39
  Button(action: {isSheet=true}) {Text("削除")}.actionSheet(isPresented: $isSheet) { ActionSheet(title: Text("この予定を削除しますか?"), buttons: [.destructive(Text("削除"), action:{remove(index)}),.cancel(Text("キャンセル"), action: {})])}
@@ -143,7 +143,9 @@
143
143
  }
144
144
  func save(){
145
145
  let encoder=JSONEncoder()
146
- if let encodedValue=try? encoder.encode(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish)){
146
+ let ej=Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish)
147
+ if let encodedValue=try? encoder.encode(ej){
148
+ sortarrays.append(ej)
147
149
  UserDefaults.standard.set(encodedValue,forKey:"sortkey")
148
150
  }
149
151
  array.append(selectedDate);

2

コードの修正

2022/06/09 17:58

投稿

uAd30HzDXwVQVwb
uAd30HzDXwVQVwb

スコア4

test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
  UserDefaults.standard.set(array,forKey:"sortkey")
67
67
  }
68
68
  }
69
- struct Sortarray{
69
+ struct Sortarray:Codable{
70
70
  var arraytitle:String
71
71
  var arraymemo:String
72
72
  var arraystart:Date
@@ -84,7 +84,7 @@
84
84
  let eventStore=EKEventStore()
85
85
  var body: some View {
86
86
  VStack {
87
-        Button(action:{addEvent(); save()}){Text("保存")}
87
+        Button(action:{addEvent();save();self.show.toggle()}){Text("保存")}
88
88
  TextField("タイトル",text:$newtitle)
89
89
  Text("メモ")
90
90
  TextEditor(text:$newmemo)
@@ -142,11 +142,12 @@
142
142
  print("__FUNCTION__",#function)
143
143
  }
144
144
  func save(){
145
+ let encoder=JSONEncoder()
146
+ if let encodedValue=try? encoder.encode(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish)){
147
+ UserDefaults.standard.set(encodedValue,forKey:"sortkey")
148
+ }
145
149
  array.append(selectedDate);
146
- array.append(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish))
147
150
  UserDefaults.standard.set(array,forKey:"key")
148
- UserDefaults.standard.set(array,forKey:"sortkey")
149
- self.show.toggle()
150
151
  }
151
152
  }
152
153
  struct HenshuView: View{
@@ -169,8 +170,11 @@
169
170
  DatePicker("終了時間",selection:$newfinish)
170
171
  }
171
172
  func saveremove(){
173
+ let encoder=JSONEncoder()
174
+ if let encodedValue=try? encoder.encode(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish)){
175
+ UserDefaults.standard.set(encodedValue,forKey:"sortkey")
176
+ }
172
177
  array.append(selectedDate);
173
- array.append(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish))
174
178
  array.remove(at:n);
175
179
  sortarrays.remove(at:n)
176
180
  UserDefaults.standard.set(array,forKey:"key")

1

コードの修正

2022/06/09 16:47

投稿

uAd30HzDXwVQVwb
uAd30HzDXwVQVwb

スコア4

test CHANGED
File without changes
test CHANGED
@@ -21,28 +21,25 @@
21
21
  @State var isSheet:Bool=false
22
22
  @State var selectedDate=Date()
23
23
  @State var array:[Date]
24
- @State var arraytitle:[String]
25
- @State var arraymemo:[String]
26
- @State var arraystart:[Date]
27
- @State var arrayfinish:[Date]
28
24
  @State var n=0
29
25
  @State var m1=Date()
30
26
  @State var m2=Date()
27
+ @State var sortarrays:[Sortarray]
31
28
  var body: some View{
32
29
  ScrollView{
33
30
  Calendarpage(selectedDate:$selectedDate,array:$array)
34
31
  Text(selectedDate,style:.date).padding()
35
- Button(action:{self.show=true;m1=selectedDate;m2=selectedDate}){ Text("+")}.sheet(isPresented:self.$show){SecondView(show:$show,selectedDate:$selectedDate,array:$array,arraytitle:$arraytitle,arraymemo:$arraymemo,arraystart:$arraystart,arrayfinish:$arrayfinish,newstart:$m1,newfinish:$m2)}
36
- if(array.count==0){
32
+ Button(action:{self.show=true;m1=selectedDate;m2=selectedDate}){ Text("+")}.sheet(isPresented:self.$show){SecondView(show:$show,selectedDate:$selectedDate,array:$arraynewsta,rt:$m1,newfinish:$m2,sortarrays:$sortarrays)}
33
+ if(sortarrays.count==0){
37
34
  }
38
35
  else{
39
- ForEach(0..<array.count, id:\.self){index in
36
+ ForEach(0..<sortarrays.count, id:\.self){index in
40
37
  if(equals(array[index], selectedDate)){
41
- Text("\(arraystart[index],style:.time)〜\(arrayfinish[index],style:.time)")
38
+ Text("\(sortarrays[index].arraystart,style:.time)〜\(sortarrays[index].arrayfinish,style:.time)")
42
39
  Button(action: {isSheet=true}) {Text("削除")}.actionSheet(isPresented: $isSheet) { ActionSheet(title: Text("この予定を削除しますか?"), buttons: [.destructive(Text("削除"), action:{remove(index)}),.cancel(Text("キャンセル"), action: {})])}
43
- Button(action:{self.show2 = true;n=index}){Text("編集")}.sheet(isPresented:self.$show2){HenshuView(show2:$show2,selectedDate:$selectedDate,array:$array,arraytitle:$arraytitle,arraymemo:$arraymemo,arraystart:$arraystart,arrayfinish:$arrayfinish,index:$n,newtitle:$arraytitle[index],newmemo:$arraymemo[index],newstart:$arraystart[index],newfinish:$arrayfinish[index])}
44
- Text("\(arraytitle[index])")
45
- Text("\(arraymemo[index])")
40
+ Button(action:{self.show2 = true;n=index}){Text("編集")}.sheet(isPresented:self.$show2){HenshuView(show2:$show2,selectedDate:$selectedDate,array:$array,index:$n,newtitle:$arraytitle[index],newmemo:$arraymemo[index],newstart:$arraystart[index],newfinish:$arrayfinish[index],sortarrays:$sortarrays)}
41
+ Text("\(sortarrays[index].arraytitle)")
42
+ Text("\(sortarrays[index].arraymemo)")
46
43
  }
47
44
  }
48
45
  }
@@ -51,15 +48,9 @@
51
48
  init(){
52
49
  UIDatePicker.appearance().minuteInterval=5
53
50
  let a=UserDefaults.standard.array(forKey:"key") as? [Date] ?? []
54
- let t=UserDefaults.standard.array(forKey:"titlekey") as? [String] ?? []
55
- let m=UserDefaults.standard.array(forKey:"memokey") as? [String] ?? []
56
- let s=UserDefaults.standard.array(forKey:"startkey") as? [Date] ?? []
51
+ let sort=UserDefaults.standard.array(forKey:"sortkey") as? [Sortarray] ?? []
57
- let f=UserDefaults.standard.array(forKey:"finishkey") as? [Date] ?? []
58
52
  _array=State(initialValue:a)
59
- _arraytitle=State(initialValue:t)
60
- _arraymemo=State(initialValue:m)
61
- _arraystart=State(initialValue:s)
53
+ _sortarrays=State(initialValue:sort)
62
- _arrayfinish=State(initialValue:f)
63
54
  }
64
55
  func equals(_ date1:Date, _ date2:Date)->Bool{
65
56
  let calendar = Calendar.current
@@ -70,33 +61,30 @@
70
61
  }
71
62
  func remove(_ n:Int){
72
63
  array.remove(at:n);
73
- arraytitle.remove(at:n);
74
- arraymemo.remove(at:n);
75
- arraystart.remove(at:n)
64
+ sortarrays.remove(at:n)
76
- arrayfinish.remove(at:n)
77
65
  UserDefaults.standard.set(array,forKey:"key")
78
- UserDefaults.standard.set(arraytitle,forKey:"titlekey")
79
- UserDefaults.standard.set(arraymemo,forKey:"memokey")
80
- UserDefaults.standard.set(arraystart,forKey:"startkey")
66
+ UserDefaults.standard.set(array,forKey:"sortkey")
81
- UserDefaults.standard.set(arrayfinish,forKey:"finishkey")
82
- }
67
+ }
68
+ }
69
+ struct Sortarray{
70
+ var arraytitle:String
71
+ var arraymemo:String
72
+ var arraystart:Date
73
+ var arrayfinish:Date
83
74
  }
84
75
  struct SecondView: View{
85
76
  @Binding var show:Bool
86
77
  @Binding var selectedDate:Date
87
78
  @Binding var array:[Date]
88
- @Binding var arraytitle:[String]
89
- @Binding var arraymemo:[String]
90
- @Binding var arraystart:[Date]
91
- @Binding var arrayfinish:[Date]
92
79
  @Binding var newstart:Date
93
80
  @Binding var newfinish:Date
81
+ @Binding var sortarrays:[Sortarray]
94
82
  @State var newtitle=""
95
83
  @State var newmemo=""
96
84
  let eventStore=EKEventStore()
97
85
  var body: some View {
98
86
  VStack {
99
-        Button(action:{addEvent(newstart,newfinish,newtitle,newmemo); save()}){Text("保存")}
87
+        Button(action:{addEvent(); save()}){Text("保存")}
100
88
  TextField("タイトル",text:$newtitle)
101
89
  Text("メモ")
102
90
  TextEditor(text:$newmemo)
@@ -136,7 +124,7 @@
136
124
  fatalError("カレンダーの認証部分でエラー @unknown default")
137
125
  }
138
126
  }
139
- func addEvent(_ newstart:Date,_ newfinish:Date,_ newtitle:String,_ newmemo:String){
127
+ func addEvent(){
140
128
  let defaultCalendar=eventStore.defaultCalendarForNewEvents
141
129
  let event=EKEvent(eventStore:eventStore)
142
130
  event.title=newtitle
@@ -155,15 +143,9 @@
155
143
  }
156
144
  func save(){
157
145
  array.append(selectedDate);
158
- arraytitle.append(newtitle);
159
- arraymemo.append(newmemo);
160
- arraystart.append(newstart)
161
- arrayfinish.append(newfinish)
146
+ array.append(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish))
162
147
  UserDefaults.standard.set(array,forKey:"key")
163
- UserDefaults.standard.set(arraytitle,forKey:"titlekey")
164
- UserDefaults.standard.set(arraymemo,forKey:"memokey")
165
- UserDefaults.standard.set(arraystart,forKey:"startkey")
148
+ UserDefaults.standard.set(array,forKey:"sortkey")
166
- UserDefaults.standard.set(arrayfinish,forKey:"finishkey")
167
149
  self.show.toggle()
168
150
  }
169
151
  }
@@ -171,42 +153,30 @@
171
153
  @Binding var show2:Bool
172
154
  @Binding var selectedDate:Date
173
155
  @Binding var array:[Date]
174
- @Binding var arraytitle:[String]
175
- @Binding var arraymemo:[String]
176
- @Binding var arraystart:[Date]
177
- @Binding var arrayfinish:[Date]
178
156
  @Binding var index:Int
179
157
  @Binding var newtitle:String
180
158
  @Binding var newmemo:String
181
159
  @Binding var newstart:Date
182
160
  @Binding var newfinish:Date
161
+ @Binding var sortarrays:[Sortarray]
183
162
  let eventStore=EKEventStore()
184
163
  var body: some View{
185
- Button(action:{addEvent(newstart,newfinish,newtitle,newmemo);saveremove(index);self.show2.toggle()}){Text("保存")}
164
+ Button(action:{addEvent();saveremove(index);self.show2.toggle()}){Text("保存")}
186
165
  TextField("タイトル",text:$newtitle)
187
166
  Text("メモ")
188
167
  TextEditor(text:$newmemo)
189
168
  DatePicker("開始時間",selection:$newstart)
190
169
  DatePicker("終了時間",selection:$newfinish)
191
170
  }
192
- func saveremove(_ n:Int){
171
+ func saveremove(){
193
- array.append(selectedDate)
172
+ array.append(selectedDate);
194
- arraytitle.append(newtitle)
195
- arraymemo.append(newmemo)
196
- arraystart.append(newstart)
197
- arrayfinish.append(newfinish)
173
+ array.append(Sortarray(arraytitle:newtitle,arraymemo:newmemo,arraystart:newstart,arrayfinish:newfinish))
198
- array.remove(at:n)
174
+ array.remove(at:n);
199
- arraytitle.remove(at:n)
200
- arraymemo.remove(at:n)
201
- arraystart.remove(at:n)
175
+ sortarrays.remove(at:n)
202
- arrayfinish.remove(at:n)
203
176
  UserDefaults.standard.set(array,forKey:"key")
204
- UserDefaults.standard.set(arraytitle,forKey:"titlekey")
205
- UserDefaults.standard.set(arraymemo,forKey:"memokey")
206
- UserDefaults.standard.set(arraystart,forKey:"startkey")
177
+ UserDefaults.standard.set(array,forKey:"sortkey")
207
- UserDefaults.standard.set(arrayfinish,forKey:"finishkey")
208
- }
178
+ }
209
- func addEvent(_ newstart:Date,_ newfinish:Date,_ newtitle:String,_ newmemo:String){
179
+ func addEvent(){
210
180
  let defaultCalendar=eventStore.defaultCalendarForNewEvents
211
181
  let event=EKEvent(eventStore: eventStore)
212
182
  event.title=newtitle