ebook img

Objective-C phrasebook PDF

385 Pages·2012·1.754 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Objective-C phrasebook

ptg7068947 Objective-C P H R A S E B O O K SECOND EDITION ptg7068947 David Chisnall DEVELOPER’S LIBRARY Upper Saddle River,NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Cape Town • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim,the designations have been print- ed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book,but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales,which may include electronic versions and/or cus- tom covers and content particular to your business,training goals,marketing focus, and branding interests. For more information,please contact: U.S. Corporate and Government Sales (800) 382-3419 [email protected] For sales outside the United States,please contact: International Sales [email protected] Visit us on the Web: informit.com/aw Library of Congress Cataloging-in-Publication Data is on file. Copyright ©2012 Pearson Education,Inc. All rights reserved. Printed in the United States of America. This publication is pro- tected by copyright,and permission must be obtained from the publisher prior to any prohibited reproduction,storage in a retrieval system,or transmission in any form or ptg7068947 by any means,electronic,mechanical,photocopying,recording,or likewise. For infor- mation regarding permissions,write to: Pearson Education,Inc Rights and Contracts Department 501 Boylston Street,Suite 900 Boston,MA 02116 Fax (617) 671-3447 ISBN-13: 978-0-321-81375-6 ISBN-10: 0-321-81375-8 Text printed in the United States on recycled paper at RR Donnelly in Crawfordsville, Indiana. First printing October 2011 Editor-in-Chief Managing Editor Proofreader Cover Designer Mark Taub Kristy Hart Charlotte Kughen Gary Adair Acquisitions Editor Project Editor Publishing Senior Compositor Mark Taber Anne Goebel Coordinator Gloria Schurick Development Copy Editor Vanessa Evans Editor Bart Reed Michael Thurston Table of Contents Introduction xiv 1 The Objective-C Philosophy 1 Understanding the Object Model 2 A Tale of Two Type Systems 4 C Is Objective-C 5 The Language and the Library 7 The History of Objective-C 9 Cross-Platform Support 13 Compiling Objective-C Programs 15 2 An Objective-C Primer 19 ptg7068947 Declaring Objective-C Types 20 Sending Messages 24 Understanding Selectors 28 Declaring Classes 31 Using Protocols 36 Adding Methods to a Class 38 Using Informal Protocols 42 Synthesizing Methods with Declared Properties 43 Understanding self, _cmd, super 49 Understanding the isa Pointer 52 Initializing Classes 55 Reading Type Encodings 58 Using Blocks 60 iv Contents 3 Memory Management 63 Retaining and Releasing 64 Assigning to Instance Variables 66 Automatic Reference Counting 67 Returning Objects via Pointer Arguments 70 Avoiding Retain Cycles 73 Migrating to ARC 75 Autorelease Pools 78 Using Autoreleased Constructors 81 Autoreleasing Objects in Accessors 82 Supporting Automatic Garbage Collection 83 ptg7068947 Interoperating with C 85 Understanding Object Destruction 88 Using Weak References 90 Allocating Scanned Memory 93 4 Common Objective-C Patterns 95 Supporting Two-Stage Creation 96 Copying Objects 98 Archiving Objects 100 Creating Designated Initalizers 104 Enforcing the Singleton Pattern 107 Delegation 109 Providing Façades 111 Creating Class Clusters 113 Contents v Using Run Loops 116 5 Numbers 119 Storing Numbers in Collections 121 Performing Decimal Arithmetic 125 Converting Between Strings and Numbers 128 Reading Numbers from Strings 130 6 Manipulating Strings 133 Creating Constant Strings 134 Comparing Strings 135 Processing a String One Character at a Time 139 ptg7068947 Converting String Encodings 142 Trimming Strings 145 Splitting Strings 146 Copying Strings 148 Creating Strings from Templates 150 Matching Patterns in Strings 154 Storing Rich Text 156 7 Working with Collections 159 Using Arrays 161 Manipulating Indexes 163 Storing Unordered Groups of Objects 165 Creating a Dictionary 167 Iterating Over a Collection 169 vi Contents Finding an Object in a Collection 173 Subclassing Collections 176 Storing Objects in C++ Collections 179 8 Dates and Times 183 Finding the Current Date 184 Converting Dates for Display 186 Calculating Elapsed Time 189 Parsing Dates from Strings 191 Receiving Timer Events 192 9 Working with Property Lists 195 Storing Collections in Property Lists 196 ptg7068947 Reading Data from Property Lists 199 Converting Property List Formats 202 Using JSON 204 Storing User Defaults 206 Storing Arbitrary Objects in User Defaults 210 10 Interacting with the Environment 213 Getting Environment Variables 214 Parsing Command-Line Arguments 216 Accessing the User’s Locale 218 Supporting Sudden Termination 219 11 Key-Value Coding 223 Contents vii Accessing Values by Key 224 Ensuring KVC Compliance 225 Understanding Key Paths 229 Observing Keys 231 Ensuring KVO Compliance 233 12 Handling Errors 237 Runtime Differences for Exceptions 238 Throwing and Catching Exceptions 242 Using Exception Objects 244 Using the Unified Exception Model 246 Managing Memory with Exceptions 247 ptg7068947 Passing Error Delegates 250 Returning Error Values 252 Using NSError 253 13 Accessing Directories and Files 255 Reading a File 256 Moving and Copying Files 258 Getting File Attributes 260 Manipulating Paths 262 Determining if a File or Directory Exists 264 Working with Bundles 266 Finding Files in System Locations 269 14 Threads 273 viii Contents Creating Threads 274 Controlling Thread Priority 275 Synchronizing Threads 278 Storing Thread-Specific Data 280 Waiting for a Condition 283 15 Blocks and Grand Central 287 Binding Variables to Blocks 288 Managing Memory with Blocks 293 Performing Actions in the Background 296 Creating Custom Work Queues 298 16 Notifications 301 Requesting Notifications 302 ptg7068947 Sending Notifications 304 Enqueuing Notifications 305 Sending Notifications Between Applications 307 17 Network Access 311 Wrapping C Sockets 312 Connecting to Servers 314 Sharing Objects Over a Network 317 Finding Network Peers 320 Loading Data from URLs 323 18 Debugging Objective-C 327 Inspecting Objects 328 Recognizing Memory Problems 330 Contents ix Watching Exceptions 333 Asserting Expectations 335 Logging Debug Messages 337 19 The Objective-C Runtime 339 Sending Messages by Name 340 Finding Classes by Name 342 Testing If an Object Understands a Method 343 Forwarding Messages 346 Finding Classes 349 Inspecting Classes 351 Creating New Classes 353 ptg7068947 Adding New Instance Variables 356 Index 359

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.