Book Image

Objective-C Memory Management Essentials

Book Image

Objective-C Memory Management Essentials

Overview of this book

Table of Contents (18 chapters)
Objective-C Memory Management Essentials
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Memory leaks


If you are used to calling the release method after an alloc/init method or a retain statement, ARC allows you to forgo all that as you can still call your alloc/init methods or retain statements and not add in a release statement as ARC takes care of this for you. This introduces brevity and makes your code more concise. Here is an example:

Before ARC:

Class1 *obj1 = [[Class1 alloc] init];
Class1 *obj2 = [obj1 retain];
[obj2 release];
[obj1 release];

After ARC:

Class1 *obj1 = [[Class1 alloc] init];
Class1 *obj2 = obj1;

If you wrote the code without calling the release methods as seen under After ARC, you will have two memory leaks that will appear in your code due to you forgetting to put in the two release methods. You will notice that the number of lines has been reduced and the code is easier to understand, as there is no need to call any release statements. So with ARC, people will be fooled into thinking that their memory management woes are over, but actually, memory leaks...