O'Reilly logo

iOS App Development Portable Genius by Richard Wentk

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

Managing Memory

Memory is a finite resource. Your app has to tell iOS when it wants to keep objects in memory and when they can be deleted to free the memory for other uses.

Before Xcode 4.3, developers managed memory manually. Many sample projects on the web still use manual memory management code, so this chapter explains how to recognize this code and how to update it.

From Xcode 4.3 onward, memory management is automated and uses a technology called Automated Reference Counting (ARC). As long as you tell Xcode to enable ARC when you create a new project, you can leave it to work behind the scenes. In some specialized situations, some manual adjustment is still needed, but they’re mostly reserved for code that uses older C-based libraries. Simpler object-based code works as-is.

note_2c.eps

Internally, the old and new schemes for memory management work the same way. The difference is that in the older scheme, you were responsible for adding explicit memory management instructions to your code. In the new scheme, Xcode adds the instructions for you when it builds your app. Mostly they just work, so you don’t have to worry about them.

Understanding manual memory management

The original memory management code is easy to understand, but very difficult to work with. Unfortunately, if you get it wrong, your app is likely to crash. In fact, memory management issues were—and sometimes still are—one ...

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