Prepared for developers who are following a “Swift To‑Do List” tutorial series (episode 11) or who want a concise reference for the concepts covered in that stage of the project. | Episode | Core Goal | Typical New Feature Introduced | |---------|-----------|--------------------------------| | 1‑2 | Project scaffolding, UI basics | Simple list using UITableView / List | | 3‑5 | Data persistence basics | UserDefaults , Codable | | 6‑8 | Refactoring & MVVM | View‑model separation, bindings | | 9‑10 | Advanced UI/UX | Swipe actions, drag‑and‑drop reordering | | 11 | Full‑featured persistence & editing | Core Data integration, inline editing, and multi‑selection |

let container: NSPersistentContainer

var body: some View NavigationStack Form Section(header: Text("Task")) TextField("Title", text: $title) Section Toggle("Set due date", isOn: Binding( get: showDatePicker , set: showDatePicker = $0; if !$0 dueDate = nil )) if showDatePicker DatePicker("Due", selection: Binding( get: dueDate ?? Date() , set: dueDate = $0 ), displayedComponents: .date) .navigationTitle("New Task") .toolbar ToolbarItem(placement: .cancellationAction) Button("Cancel") dismiss() ToolbarItem(placement: .confirmationAction) Button("Save") onSave(title, dueDate) dismiss() .disabled(title.trimmingCharacters(in: .whitespaces).isEmpty)

func addTask(title: String, dueDate: Date? = nil) let task = TaskItem(context: container.viewContext) task.id = UUID() task.title = title task.isCompleted = false task.creationDate = Date() task.dueDate = dueDate save()

VStack(alignment: .leading) Text(task.title ?? "") .strikethrough(task.isCompleted, color: .gray) if let due = task.dueDate Text("Due: \(due, formatter: dateFormatter)") .font(.caption) .foregroundColor(.secondary)

var body: some View HStack Image(systemName: task.isCompleted ? "checkmark.circle.fill" : "circle") .foregroundColor(task.isCompleted ? .green : .secondary) .onTapGesture(perform: toggleAction)

struct TaskRow: View @ObservedObject var task: TaskItem var toggleAction: () -> Void

var onSave: (String, Date?) -> Void

X

Login

Zugangsdaten nicht erkannt!
Passwort vergessen?
Sie sind nicht registriert
Registrierung