質問するログイン新規登録

Q&A

解決済

1回答

2044閲覧

SwiftUI Missing argument for parameter ' ' in callというエラーの直し方がわかりません。;;

ReonIIII

総合スコア1

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2024/02/27 09:00

0

0

実現したいこと

アプリ開発初学者です。
CoreDataを使ってTODOアプリを作りたいです。

発生している問題・分からないこと

PreviewとNavigationLinkの画面切り替えをする箇所でエラーが発生しました。

エラーメッセージ

error

1Missing argument for parameter 'saveTaskCoreData' in call 2Missing arguments for parameters 'taskCoreData', 'saveTaskCoreData' in call

該当のソースコード

Swift

1import SwiftUI 2 3 4struct TaskView: View { 5 @Environment(\.managedObjectContext)private var context 6 @ObservedObject var taskCoreData: TaskCoreData 7 @StateObject var saveTaskCoreData : SaveTaskCoreData 8 @FetchRequest( 9 entity:TaskCoreData.entity(),sortDescriptors: [NSSortDescriptor(keyPath:\TaskCoreData.date,ascending: false)], 10 animation: .default) 11 private var TaskCoreDataAddView: FetchedResults<TaskCoreData> 12 13 var body: some View { 14 NavigationStack { 15 VStack { 16 ZStack { 17 Image("backgrounditem6") 18 .resizable() 19 .frame(width: 256, height: 209) 20 .offset(x:0) 21 Image("backgrounditem5") 22 .resizable() 23 .frame(width: 189, height: 209) 24 .offset(x:-150, y:-50) 25 HStack (spacing: 0){ 26 Spacer().frame(width: 250) 27 NavigationLink { 28 CreateTaskView()//エラー 29 } label: { 30 ZStack { 31 Image("backgrounditemPlus") 32 .resizable() 33 .frame(width: 256, height: 180) 34 } 35 } 36 } 37 } 38 //.padding(.top, -) 39 List{ 40 ForEach(TaskCoreDataAddView) { TaskCoreDataAddView in 41 Text(taskCoreData.wrappedTitle) 42 } 43 } 44 45 46 } 47 .navigationBarBackButtonHidden(true) 48 } 49 } 50} 51 52#Preview { 53 TaskView() //エラー 54} 55

Swift

1import SwiftUI 2 3struct CreateTaskView: View { 4 @EnvironmentObject var taskData: TaskData 5 @ObservedObject var saveTaskCoreData: SaveTaskCoreData 6 @Environment(\.managedObjectContext)private var context 7 8 @State var inputTaskName = "" //タスク名 9 @State var selectedColor = Color.blue //カラー 10 @State var showSelectDate: Bool = false //日付選択画面の表示 11 @State var showSelectTime: Bool = false //時間選択画面の表示 12 13 var body: some View { 14 NavigationStack { 15 VStack { 16 HStack (spacing: 0) { 17 ZStack{ 18 Image("backgrounditem6") 19 .resizable() 20 .frame(width: 256, height: 209) 21 .offset(x: 100,y: -100) 22 NavigationLink { 23 TaskView() //エラー 24 } label: { 25 Image("backgrounditemLeft") 26 .resizable() 27 .frame(width: 256, height: 180) 28 } 29 } 30 Spacer().frame(width: 350) 31 } 32 .padding(.top,-230) 33 ZStack { 34 Ellipse() 35 .frame(width: 320, height: 220) 36 .foregroundColor(selectedColor) 37 Text(inputTaskName) 38 Text(taskData.SelectDataText) 39 .padding(.bottom,180) 40 Text(taskData.SelectTimeText) 41 .padding(.bottom,130) 42 }.padding() 43 TextField(" タスクを入力してください", text: $inputTaskName) 44 .textFieldStyle(.roundedBorder) 45 .frame(width: 350) 46 47 HStack (spacing: 40){ 48 Button(action: { 49 UIColorWellHelper.helper.execute?() 50 }, label: { 51 Image(systemName: "paintbrush") 52 .foregroundColor(.black) 53 .font(.system(size: 35)) 54 .background( 55 ColorPicker("", selection: $selectedColor, supportsOpacity: false) 56 .labelsHidden().opacity(0) 57 ) 58 }) 59 Button(action: { 60 showSelectDate = true 61 }, label: { 62 Image(systemName: "calendar") 63 .foregroundColor(.black) 64 .font(.system(size: 35)) 65 }) 66 .sheet(isPresented: $showSelectDate,content: { 67 SelectDate() 68 .presentationDetents([.medium]) 69 }) 70 Button(action: { 71 showSelectTime = true 72 }, label: { 73 Image(systemName: "clock") 74 .foregroundColor(.black) 75 .font(.system(size: 35)) 76 }) 77 .sheet(isPresented: $showSelectTime, content: { 78 SelectTime() 79 .presentationDetents([.medium]) 80 }) 81 Button(action: { 82 saveTaskCoreData.title = "\($inputTaskName)" 83 saveTaskCoreData.date = taskData.SelectDataValue 84 saveTaskCoreData.time = taskData.SelectTimeValue 85 saveTaskCoreData.writeData(context: context) 86 }, label: { 87 Image(systemName: "plus.circle") 88 .foregroundColor(.blue) 89 .font(.system(size: 35)) 90 }) 91 } 92 } 93 .navigationBarBackButtonHidden(true) 94 } 95 96 } 97} 98//ColorPiker// 99extension UIColorWell { 100 101 override open func didMoveToSuperview() { 102 super.didMoveToSuperview() 103 104 if let uiButton = self.subviews.first?.subviews.last as? UIButton { 105 UIColorWellHelper.helper.execute = { 106 uiButton.sendActions(for: .touchUpInside) 107 } 108 } 109 } 110} 111class UIColorWellHelper: NSObject { 112 static let helper = UIColorWellHelper() 113 var execute: (() -> ())? 114 @objc func handler(_ sender: Any) { 115 execute?() 116 } 117} 118//ColorPiker// 119#Preview { 120 CreateTaskView() エラー 121} 122

Swift

1import Foundation 2import CoreData 3 4 5extension TaskCoreData { 6 7 @nonobjc public class func fetchRequest() -> NSFetchRequest<TaskCoreData> { 8 return NSFetchRequest<TaskCoreData>(entityName: "TaskCoreData") 9 } 10 11 @NSManaged public var date: Date? 12 @NSManaged public var time: Date? 13 @NSManaged public var title: String? 14 15} 16extension TaskCoreData { 17 public var wrappedDate: Date {date ?? Date()} 18 public var wrappedTime: Date {time ?? Date()} 19 public var wrappedTitle: String {title ?? ""} 20} 21 22extension TaskCoreData : Identifiable { 23 24}

Switf

1import Foundation 2import SwiftUI 3import CoreData 4 5class SaveTaskCoreData: ObservableObject{ 6 @Published var date = Date() 7 @Published var time = Date() 8 @Published var title = "" 9 10 @Published var isNewData = false 11 @Published var updateItem:TaskCoreData! 12 13 func writeData(context :NSManagedObjectContext){ 14 if updateItem != nil { 15 updateItem.date = date 16 updateItem.time = time 17 updateItem.title = title 18 19 try! context.save() 20 21 updateItem = nil 22 isNewData.toggle() 23 24 date = Date() 25 time = Date() 26 title = "" 27 28 return 29 } 30 //データ新規作成(作成したデータをTaskCoreDataに) 31 let newTaskCoreData = TaskCoreData(context: context) 32 newTaskCoreData.date = date 33 newTaskCoreData.time = time 34 newTaskCoreData.title = title 35 36 do { 37 try context.save() 38 isNewData.toggle() 39 40 date = Date() 41 time = Date() 42 title = "" 43 } 44 catch { 45 print(error.localizedDescription) 46 } 47 } 48 //編集機能は今後追加する。(長押しで編集できるように) 49 func editItem(item: TaskCoreData) { 50 updateItem = item 51 52 date = item.wrappedDate 53 time = item.wrappedTime 54 title = item.wrappedTitle 55 56 isNewData.toggle() 57 } 58} 59

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

二日ほど自分なりに調べていますが直せませんでした。。。
調べる力をつけたかったので人に質問するのは控えていましたが進展がなさすぎて諦めました。
皆さんのお力をお借りしたいです。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答1

0

ベストアンサー

[香車]東上海美「
今、SSD が狭くて、MacOS での開発環境を消しちゃってて、確認取れてないんですけど、

> 7 @StateObject var saveTaskCoreData : SaveTaskCoreData

『変数名 saveTaskCoreData』『型名 SaveTaskCoreData』と、変数名と型名が同じになってます。
型名は TSaveTaskCoreData にした方が、いいのでは ?

投稿2024/02/28 03:10

umimi

総合スコア564

ReonIIII

2024/02/29 17:09

回答ありがとうございます。 そのとおりでした。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問