O'Reilly logo

Learning iPhone Programming by Alasdair Allan

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 8. Handling Data

Most applications on the iPhone platform will make a network connection to retrieve data at some point. This data will usually be formatted so that it can be easily parsed, either as XML or, more frequently these days, as JSON.

In this chapter, we’re going to look at how to get data directly from the user via the UI, and then how to parse data we’ve retrieved from the network. Finally, we’ll look at how to store that data on the device.

Data Entry

The Cocoa Touch framework offers a number of UI elements, ranging from text entry fields to switches and segmented controls. Any of these can be used for data entry, but often when we talk about data entry we’re talking about getting textual information into an application.

The two main UI elements that allow you to enter text are the UITextField and UITextView classes. While they may sound similar, they are actually quite different. The most noticeable difference between the two is that the UITextView allows you to enter (and display) a multiline text field, while UITextField doesn’t.

The most annoying difference between the two is the issue of the resigning first responder. When tapped, both display a keyboard to allow the user to enter text. However, while the UITextField class allows the user to dismiss the keyboard (at which time the text field resigns as first responder) when the user taps the Done button, the UITextView class does not. Though there are multiple ways around this problem, as we’ll find later on, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required