Lesson 9 - iOS ToDo app in Swift - Filling in and serialization
In the previous lesson, Creating an iOS ToDo app storing data, we started building a ToDo app.
For today's iOS tutorial, I promised to finish marking tasks as completed and saving data.
Marking tasks as completed
Let's program marking tasks as completed first. We've already prepared a
method which is called when the user selects a TableView
row. We'll
use the accessoryType
cell property and set it to
.checkmark
or .none
when the row is selected:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { if let selectedCell = tableView.cellForRow(at: indexPath) { if selectedCell.accessoryType == .checkmark { selectedCell.accessoryType = .none } else { selectedCell.accessoryType = .checkmark } } }
If we now select a row, it'll be marked as completed or uncompleted. That's
because we set the accessoryType
to .none
if it's
already set to .checkmark
.
Bug hunt
It looks like we're done. However, there's a very essential error
...End of the preview...

Premium article
ict.social is a large database made up of manuals and tutorials, whose main goal is to provide high-quality IT education to everyone. We started out in the Czech republic, where we display roughly a million articles per month and receive plenty of gratitude from our users. Thanks to our successful establishment, we are now bringing these articles to the rest of the world.
Although we are trying to keep our content free of charge, maintaining the site is a huge effort for everyone involved. Therefore, some content (exercises and more advanced material) costs network points. Don't worry, they're really cheap :)
Article description
Requested article covers this content:
In this Swift tutorial, we'll fill our ToDo app with tasks and have a look at serialization/deserialization of data into/from a file.
Buying this article gives you unlimited access to it forever. You will learn some more and help us keep giving our site maintenance which helps you and others get better futures. It's a win-win.
This article is licensed: Premium, by buying this article, you agree with the terms of use.
You gain points by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.
You can get points immediately using:
![]() |
![]() |
![]() |
Credit card | SMS | Wire transfer |