You can better go for CoreData. Its really easy to implement & great to use.
Here is the best tutorial to get started off
Here is the Core Data programming guide from apple
And here is why you should go for Core-Data
Despite of all other opinions, I'll suggest you to use core data only. It seemed too easy with visual interface provided in XCode & tons of great development support.
I'd go against using NSUserDefaults, as To-do list should be expanding in your app, & you might want to perform several operations on those objects. Everytime fetching data from userDefaults don't seem good approach to me.
Why Use NSUserDefaults:
The NSUserDefaults class provides a programmatic interface for interacting with the defaults system. The defaults system allows an application to customize its behavior to match a user’s preferences. For example, you can allow users to determine what units of measurement your application displays or how often documents are automatically saved. Applications record such preferences by assigning values to a set of parameters in a user’s defaults database. The parameters are referred to as defaults since they’re commonly used to determine an application’s default state at startup or the way it acts by default.
Here is Class Reference