Collections. Fall, Prof. Massimiliano "Max" Pala

Size: px
Start display at page:

Download "Collections. Fall, Prof. Massimiliano "Max" Pala"

Transcription

1 Collections Fall, 2012 Prof. Massimiliano "Max" Pala

2 Overview Arrays Copy and Deep Copy Sets Dictionaries Examples

3 Arrays Two Classes NSArray and NSMutableArray (subclass of NSArray) int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoReleasePool alloc] init]; Person *a = [[Person alloc] init]; Person *b = [[Person alloc] init]; NSArray *arr1 = [[NSArray arraywithobjects:a, b, c, d, nil] autorelease]; for (id object in arr1){ NSLog(@"Object = %@", object) NSInteger counter = 0; for ( counter = 0; counter < [arr1 count]; counter++) {. [pool release]; [a release]; [b release]; [c release]; [d release]; return 0; ;

4 Arrays (cont.)

5 Arrays (cont.) int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Person *a = [[Person alloc] init]; Person *b = [[Person alloc] init]; NSArray *arr1 = [[NSArray arraywithobjects:a, b, c, d, nil] autorelease]; NSArray *arr2 = [arr1 copy]; Person *aperson = [arr1 objectatindex:0]; aperson.name Name"; aperson.address Address"; ; [arr2 release]; // Since we copied it, we release it! [pool release]; [a release]; [b release]; [c release]; [d release]; return 0;

6 Arrays (cont.)

7 Mutable Arrays Allow dynamic manipulation of objects addobject removeobject Adding an object will increment the reference count Removing an object will send a release message to the object When copying, the new array is distinct from the original one Objects are still the same

8 Mutable Arrays int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Person *a = [[Person alloc] init]; NSArray *arr1 = [[NSArray arraywithobjects:a, b, c, d, nil] autorelease]; NSMutableArray *arr2 = [arr1 mutablecopy]; Person *newperson = [[Person alloc] init]; [arr2 addobject:newperson]; [arr2 removeobject:a]; [pool release]; [a release]; ; [newperson release]; return 0;

9 Mutable Arrays (cont.)

10 Deep Copy Shallow copies is the default behavior for NSArray and NSMutableArray A deep copy is a copy that is independent of the original The object has to implement the NSCopying protocol 1. Your class must be descendent of NSObject and adopt the NSCopying protocol 2. It must implement copywithzone: method. A call to the super's copywithzone: should be the first statement. The returned object should be independent from the original one and functionally equivalent 3. Allocate the new object and make copies of all the instance variables. You might propagate the copy to the instance variables. 4. The new object is passed to the caller (who owns it)

11 Deep Copy (cont.) NSObject does not adopt NSCopying protocol itself [NSObject copy] translates to a convenience method that sends a copywithzone:nil message If copywithzone: is not implemented in the inheritance chain an exception is thrown A copy of an array results in a shallow copy (the array object itself does not implement the NSCopying protocol) To deep-copy an array Initialize a new array with copies of the original array's objects The objects in the new array are independent and functionally equivalent to the objects in the original array You own the new objects

12 Deep Copy (cont.) int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Person *a = [[Person alloc] init]; NSArray *arr1 = [NSArray arraywithobjects:a, b, c, d, nil]; NSArray *arr2 = [NSArray arraywithobjects: [[a copy] autorelease] // Autorelease adds to [[b copy] autorelease] // the pool (RC = 2) nil]; ; [pool release]; [a release]; [d release]; return 0;

13 Deep Copy (cont.)

14 Sorting an Array Two methods Write a function that finds the proper order of two objects Write a method to your class that allows an instance to compare itself to another instance of the same class The comparator function should return one of the following (NSInteger) NSOrderedAscending: a < b NSOrderedSame: a == b NSOrderedDescending: a > b

15 Sorting an Array Person : NSObject { NSString *name; NSInteger (copy) NSString NSString NSInteger intsort (id a, id b, void *context) { int val1 = [(Person *)a id]; int val2 = [(Person *)b id]; if (val1 < val2) return NSOrderedAscending; else if (val1 == val2) return NSOrderedSame; else return NSOrderedDescending; int main( { Person *a = [[Person alloc] init]; NSArray *arr1 = [NSArray initwithobjects: a, b, c,, nil]; NSArray *arr2 = [arr1 sortedarrayusingfunction:intsort context: NULL];

16 Sorting an Array Person : NSObject { NSString *name; NSInteger (copy) NSString NSString id; -(NSComparisonResult) namecompare:(person *aperson); // Person -(NSComparisonResult) namecompare:(person *)aperson { return [name caseinsensitivecompare:[aperson

17 Sorting Arrays (cont.) int main( { Person *a = [[Person alloc] init]; NSArray *arr1 = [NSArray initwithobjects: a, b, c,, nil]; NSArray *arr2 = [arr1 sortedarrayusingselector:@selector(namecompare:)];

18 Sets Unique objects and fast verification mechanism of object membership No support for sorting (use NSArray/NSMutableArray) Mutable and immutable versions (NSSet/NSMutableSet) Immutable sets methods initwithobjects: a, b,, nil - (BOOL) intersectswithset: (NSSet *)otherset - (BOOL) issubsetofset:(nsset *)otherset - (BOOL) isequaltoset:(nsset *) otherset - (BOOL) containsobject:(id)anobject

19 Mutable Sets Mutable sets methods [[NSMutableSet alloc] initwithcapacity: 2] - (void) unionset:(nsset *)otherset - (void) minusset:(nsset *)otherset - (void) addobject:(id)anobject - (void) removeobject:(id)anobject Other Methods (NSSet) - (void) removeallobjects - (void) setset:(nsset *)replacementset - (void) addobjectsfromarray:(nsarray *)anarray Send a Message to all objects - (void) makeobjectsperformselector:(sel)aselector - (void) makeobjectsperformselector:(sel)aselector withobject:(id)anobject

20 Dictionaries Allow to store key/values pair Any object can be used as a Key must implement NSCopying protocol usually instances of NSString are used as keys Keys have to be unique Values can not be nil Use NSNull class to store empty objects When an object is added to a dictionary A copy of the key is made The value object is retained

21 Dictionaries (cont.) Using Enumerators to traverse a dictionary NSMutableArray karr = nil]; NSMutableArray aarr = [NSMutableArray arraywithobjects:@"2", nil]; NSDictionary *dir = [NSDictionary dictionarywithobjectsandkeys: nil]; NSEnumerator *enum = [dir keyenumerator]; id key; while((key = [enum nextobject])) { if([[key substringtoindex:1] isequal:@"s"]) { [[dir objectforkey:key] addobject:@"5"];

22 Dictionaries (cont.) Using allkeys to traverse a Dictionary NSMutableArray karr = nil]; NSMutableArray aarr = [NSMutableArray arraywithobjects:@"2", nil]; NSDictionary *dir = [NSDictionary dictionarywithobjectsandkeys: nil]; for (id keyindictionary in [dir allkeys]) { id objectforkey = [dir objectforkey:keyindictionary] NSLog(@"Key = %@, Object = %@", keyindictionary, objectforkey);

23 Dictionaries (cont.) Using 'in' to traverse a dictionary NSMutableArray karr = nil]; NSMutableArray aarr = [NSMutableArray arraywithobjects:@"2", nil]; NSDictionary *dir = [NSDictionary dictionarywithobjectsandkeys: nil]; NSMutableDictionary *dyndir = [dir mutablecopy]; id key; for(key in dyndir) { if([[key substringtoindex:1] isequal:@"m"]) { [[dyndir objectforkey:key] addobject:@"5"];

24 Dictionaries (cont.) Using an NSArray to traverse a dictionary NSMutableArray karr = nil]; NSMutableArray aarr = [NSMutableArray arraywithobjects:@"2", nil]; NSDictionary *dir = [NSDictionary dictionarywithobjectsandkeys: nil]; NSMutableDictionary *dyndir = [dir mutablecopy]; NSArray *keys = [dyndir allkeys]; id key; for(key in keys) { if([[key substringtoindex:1] isequal:@"s"]) { [dyndir removeobjectforkey:key];

Collections & Memory Management. Lecture 2

Collections & Memory Management. Lecture 2 Collections & Memory Management Lecture 2 Demo: Accessing Documentation Collections NSArray a list of objects in order [array objectatindex:0] [array objectatindex:3] Counting starts at zero, not one NSSet

More information

Objective-C and COCOA Applications

Objective-C and COCOA Applications Objective-C and COCOA Applications Fall, 2012 Prof. Massimiliano "Max" Pala pala@nyu.edu Overview X-Code IDE Basics Objective-C Classes Methods Invocations Important Types Memory Management Protocols Exceptions

More information

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Spring Stanford CS193p Spring 2011

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Spring Stanford CS193p Spring 2011 Developing Applications for iphone 4, ipod Touch, & ipad Today Dynamic Binding Introspection Foundation Framework Enumeration More Objective-C Allocating and Initializing objects Memory Management Demo

More information

NSObject. - (NSString *)description Provides us with a string description of the object

NSObject. - (NSString *)description Provides us with a string description of the object FoundationFramework NSObject - (NSString *)description Provides us with a string description of the object NSString - (NSString *)stringbyappendingstring:(nsstring *)string Creates a new string by adding

More information

ios: Objective-C Primer

ios: Objective-C Primer ios: Objective-C Primer Jp LaFond Jp.LaFond+e76@gmail.com TF, CS76 Announcements n-puzzle feedback this week (if not already returned) ios Setup project released Android Student Choice project due Tonight

More information

Sorting. Sorting. 2501ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University.

Sorting. Sorting. 2501ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University. 2501ICT/7421ICTNathan School of Information and Communication Technology Griffith University Semester 1, 2012 Outline 1 Sort Algorithms Many Sort Algorithms Exist Simple, but inefficient Complex, but efficient

More information

Objective-C ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University.

Objective-C ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University. Objective-C 2.0 2501ICT/7421ICTNathan René Hexel School of Information and Communication Technology Griffith University Semester 1, 2012 Outline Fast Enumeration and Properties 1 Fast Enumeration and Properties

More information

Getting Help. iphone Application Programming Lecture 3: Foundation Classes. Data Structures in Objective C. Online Documentation.

Getting Help. iphone Application Programming Lecture 3: Foundation Classes. Data Structures in Objective C. Online Documentation. iphone Application Programming Lecture 3: Foundation Classes Prof. Jan Borchers Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone Online Documentation

More information

iphone Application Programming Lecture 3: Foundation Classes

iphone Application Programming Lecture 3: Foundation Classes iphone Application Programming Lecture 3: Foundation Classes Prof. Jan Borchers Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone Getting Help Online

More information

Mobile Application Development

Mobile Application Development Mobile Application Development Lecture 12 Introduction to ObjectiveC 2013/2014 Parma Università degli Studi di Parma Lecture Summary ObjectiveC language basics Classes and objects Methods Instance variables

More information

iphone OS Overview

iphone OS Overview Founda'on Framework iphone OS Overview iphone OS Overview iphone OS Overview iphone OS Overview iphone OS Overview iphone OS Overview iphone Development Environment Cocoa in the architecture of ios Cocoa

More information

COCOA WORKSHOP PART 1. Andreas Monitzer

COCOA WORKSHOP PART 1. Andreas Monitzer COCOA WORKSHOP PART 1 Andreas Monitzer 2009-02-17 WORKSHOP SCHEDULE 1. Introduction, Foundation 2. GUI Programming 3. Hands-On 4. Advanced 2009-02-17 2009-02-19 2009-02-24 2009-02-26 STRUCTURE Introduction

More information

CS193E Lecture #3 Categories and Protocols Cocoa Memory Management

CS193E Lecture #3 Categories and Protocols Cocoa Memory Management CS193E Lecture #3 Categories and Protocols Cocoa Memory Management Winter 2008, Dempsey/Marcos 1 Today s Topics Questions from Assignment 1A or 1B? Categories Protocols Cocoa Memory Management Object life

More information

1.The basics 5 Comments 5 Variables and basic types 6 Operators 8 Object variables 10 A note on prefixes and namespaces 11

1.The basics 5 Comments 5 Variables and basic types 6 Operators 8 Object variables 10 A note on prefixes and namespaces 11 1.The basics 5 Comments 5 Variables and basic types 6 Operators 8 Object variables 10 A note on prefixes and namespaces 11 2.Branching and decisions 12 If-else statement 12 Switch statement 13 Ternary

More information

ios Development Lecture 1 Introduction to Objective-C Ing. Simone Cirani

ios Development Lecture 1 Introduction to Objective-C Ing. Simone Cirani ios Development Lecture 1 Introduction to ObjectiveC Ing. Simone Cirani email: simone.cirani@unipr.it http://www.tlc.unipr.it/cirani Simone Cirani, Ph.D. Corso IFTS Cisita ios Development 2014 Parma Università

More information

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...

More information

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012 Developing Applications for ios Foundation Framework NSObject Base class for pretty much every object in the ios SDK Implements introspection methods, etc. - (NSString *)description is a useful method

More information

Assignment II: Foundation Calculator

Assignment II: Foundation Calculator Assignment II: Foundation Calculator Objective The goal of this assignment is to extend the CalculatorBrain from last week to allow inputting variables into the expression the user is typing into the calculator.

More information

Working Effectively with Objective-C on iphone OS. Blaine Garst Wizard of Runtimes

Working Effectively with Objective-C on iphone OS. Blaine Garst Wizard of Runtimes Working Effectively with Objective-C on iphone OS Blaine Garst Wizard of Runtimes 2 Working Effectively with Objective-C on ios 4 Blaine Garst Wizard of Runtimes 3 Objective-C is the language of Cocoa

More information

Mobile Application Development

Mobile Application Development Mobile Application Development Lecture 13 Introduction to ObjectiveC Part II 2013/2014 Parma Università degli Studi di Parma Lecture Summary Object creation Memory management Automatic Reference Counting

More information

IPHONE DEVELOPMENT. Getting Started with the iphone SDK

IPHONE DEVELOPMENT. Getting Started with the iphone SDK IPHONE DEVELOPMENT Getting Started with the iphone SDK OBJECTIVE-C The Big Picture STRICT SUPERSET OF C The Objective C Language Any C stuff applies Standard libs are here (time, sqrt etc) The C Language

More information

CS193P - Lecture 2. iphone Application Development. Objective-C Foundation Framework

CS193P - Lecture 2. iphone Application Development. Objective-C Foundation Framework CS193P - Lecture 2 iphone Application Development Objective-C Foundation Framework Announcements Enrollment process is complete! Contact cs193p@cs.stanford.edu if you are unsure of your status Please drop

More information

CS193P - Lecture 2. iphone Application Development. Objective-C Foundation Framework

CS193P - Lecture 2. iphone Application Development. Objective-C Foundation Framework CS193P - Lecture 2 iphone Application Development Objective-C Foundation Framework 1 Announcements 2 Announcements Enrollment process is almost done 2 Announcements Enrollment process is almost done 2

More information

Review (Basic Objective-C)

Review (Basic Objective-C) Classes Header.h (public) versus Implementation.m (private) @interface MyClass : MySuperclass... @end (only in header file) @interface MyClass()... @end (only in implementation file) @implementation...

More information

Abstract Data Types. 2501ICT/7421ICTNathan. René Hexel. Semester 1, School of Information and Communication Technology Griffith University

Abstract Data Types. 2501ICT/7421ICTNathan. René Hexel. Semester 1, School of Information and Communication Technology Griffith University Collections 2501ICT/7421ICTNathan School of Information and Communication Technology Griffith University Semester 1, 2012 Outline Collections 1 Collections 2 Linear Collections Collections Collections

More information

Announcements. Today s Topics

Announcements. Today s Topics Announcements Discuss Final Project Ideas on Wednesday Final Project teams will consist of 3 4 people No teams of 1 or 2 people Extensible Networking Platform 1 1 - CSE 438 Mobile Application Development

More information

Developing applications for ios

Developing applications for ios Developing applications for ios Lecture 3: Objective-C in Depth Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content More on Dot Notation Instance

More information

Objective-C Runtime. Cocoa s Jewel in the Crown. NSConference Nicolas

Objective-C Runtime. Cocoa s Jewel in the Crown. NSConference Nicolas Objective-C Runtime Cocoa s Jewel in the Crown NSConference 2011 Nicolas Seriot @nst021 [isa kindof:magic] 1. Objective-C 2. Recipes 3. Introspection 4. Debugging Objective-C Runtime OO, Smalltalk-like,

More information

Monday, 1 November The ios System

Monday, 1 November The ios System The ios System System Overview System Overview System Overview System Overview System Overview System Overview Foundation Classes (Useful) Foundation Framework Value and collection classes User defaults

More information

Data Management

Data Management Core Data Utility Tutorial Data Management 2010-09-19 Apple Inc. 2005, 2010 Apple Inc. All rights reserved. exclusion may not apply to you. This warranty gives you specific legal rights, and you may also

More information

Multitasking and Background Execution

Multitasking and Background Execution Multitasking and Background Execution Fall, 2012 Prof. Massimiliano "Max" Pala pala@nyu.edu Introduction Spawning Threads and Tasks Background Execution User hits 'home' button the app is sent in the background

More information

Mobile Application Programming. Memory Management

Mobile Application Programming. Memory Management Mobile Application Programming Memory Management Memory Management Ownership Model Memory Management in Objective-C is based on an ownership model. Objects may have many owners. Actions that result in

More information

Intro to Native ios Development. Dave Koziol Arbormoon Software, Inc.

Intro to Native ios Development. Dave Koziol Arbormoon Software, Inc. Intro to Native ios Development Dave Koziol Arbormoon Software, Inc. About Me Long time Apple Developer (20 WWDCs) Organizer Ann Arbor CocoaHeads President & ios Developer at Arbormoon Software Inc. Wunder

More information

Advanced Object- C Features

Advanced Object- C Features Advanced Object- C Features Advanced Features Proper6es Categories Protocols Delegates Selectors Key- Value Coding Predicators Proper6es Provide access to object a?ributes Shortcut to implemen6ng ge?er/se?er

More information

Porting Objective-C to Swift. Richard Ekle

Porting Objective-C to Swift. Richard Ekle Porting Objective-C to Swift Richard Ekle rick@ekle.org Why do we need this? 1.2 million apps in the ios App Store http://www.statista.com/statistics/276623/numberof-apps-available-in-leading-app-stores/

More information

Objective-C. Deck.m. Deck.h. Let s look at another class. This one represents a deck of cards. #import <Foundation/Foundation.h> #import "Deck.

Objective-C. Deck.m. Deck.h. Let s look at another class. This one represents a deck of cards. #import <Foundation/Foundation.h> #import Deck. Deck.h #import @interface Deck : NSObject @interface Deck() @implementation Deck Deck.m Let s look at another class. This one represents a deck of cards. Deck.h #import

More information

NSTableView + Cocoa Bindings + Core Data + Drag & Drop. HMDT Makoto Kinoshita

NSTableView + Cocoa Bindings + Core Data + Drag & Drop. HMDT Makoto Kinoshita NSTableView + Cocoa Bindings + Core Data + Drag & Drop HMDT Makoto Kinoshita NSTableView + Cocoa Bindings binding content NSArrayController NSMutableArray NSTableView + Cocoa Bindings + Core Data binding

More information

App SandBox Directory

App SandBox Directory Data Persistence Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283 App SandBox Directory

More information

COSC$4355/6355$ $Introduction$to$Ubiquitous$Computing$ Exercise$3$ September!17,!2015!

COSC$4355/6355$ $Introduction$to$Ubiquitous$Computing$ Exercise$3$ September!17,!2015! COSC4355/6355 IntroductiontoUbiquitousComputing Exercise3 September17,2015 Objective Inthisexercise,youwilllearnhowtowriteunittestsforyourapplicationandalsohowtouse NSUserDefaults.WewillalsoimplementObjectiveCCcategories*welearntlastweek.

More information

Getting Help. iphone Application Programming Lecture 3: Foundation Classes. Data Structures in Objective C. Online Documentation.

Getting Help. iphone Application Programming Lecture 3: Foundation Classes. Data Structures in Objective C. Online Documentation. iphone Application Programming Lecture 3: Foundation Classes Prof. Jan Borchers Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone Online Documentation

More information

O(1) objectatindex: firstobject: lastobject: addobject: removelastobject: O(log n) indexofobject:insortedrange:options:usingcomp arator:

O(1) objectatindex: firstobject: lastobject: addobject: removelastobject: O(log n) indexofobject:insortedrange:options:usingcomp arator: ios - O(n) containsobject: indexofobject* removeobject: O(1) objectatindex: firstobject: lastobject: addobject: removelastobject: O(log n) indexofobject:insortedrange:options:usingcomp arator: Dictionary

More information

Core Animation. Building Animated UI s. Bill Dudney. Gala Factory Software LLC. Bill Dudney Core Animation: Building Animated UI s Slide 1

Core Animation. Building Animated UI s. Bill Dudney. Gala Factory Software LLC. Bill Dudney Core Animation: Building Animated UI s Slide 1 Core Animation Building Animated UI s Bill Dudney Gala Factory Software LLC Bill Dudney Core Animation: Building Animated UI s Slide 1 Objective-C Dynamic Object Oriented C Based Smalltalk Roots Bill Dudney

More information

CS193p Spring 2010 Thursday, April 29, 2010

CS193p Spring 2010 Thursday, April 29, 2010 CS193p Spring 2010 Announcements You should have received an e-mail by now If you received e-mail approving enrollment, but are not in Axess, do it! If you have any questions, please ask via e-mail or

More information

src2/section2.0/section2/main.m // main.m // Students7 // David J. Malan // Harvard University // // Demonstrates mutable arrays.

src2/section2.0/section2/main.m // main.m // Students7 // David J. Malan // Harvard University // // Demonstrates mutable arrays. src2/section0/section2/main.m 1 1 1 1 2 2 2 2 2 2 2 2 2 30. 3 3 3 3 3 3 3 3 3 40. 4 4 4 4 main.m Students7 David J. Malan Harvard University malan@harvard.edu Demonstrates mutable arrays. #import

More information

Accustoming Yourself to Objective-C

Accustoming Yourself to Objective-C 1 Accustoming Yourself to Objective-C Objective-C brings object-oriented features to C through an entirely new syntax. Often described as verbose, Objective-C syntax makes use of a lot of square brackets

More information

CS 47. Beginning iphone Application Development

CS 47. Beginning iphone Application Development CS 47 Beginning iphone Application Development Introductions Who, why, which? Shameless Plug: LoudTap Wifi Access (If it works..) SSID: Stanford Username/password: csp47guest Expectations This is a programming

More information

Objective-C. CS 442: Mobile App Development Michael Saelee

Objective-C. CS 442: Mobile App Development Michael Saelee Objective-C CS 442: Mobile App Development Michael Saelee 1 Agenda - ObjC overview - ObjC object-oriented syn/sem - Memory management - Declared properties - Blocks 2 Overview 3 ObjC = proper

More information

AVAudioPlayer. avtouch Application

AVAudioPlayer. avtouch Application AVAudioPlayer avtouch Application iphone Application Index 1. iphone Application 1) iphone Application 2) iphone Application Main Method 3) iphone Application nib(.xib) 2. avtouch Application 1) avtouch

More information

Introductory ios Development

Introductory ios Development Introductory ios Development 152-164 Unit 2 - Basic Objective-C Syntax Quick Links & Text References Console Application Pages Running Console App Pages Basic Syntax Pages Variables & Types Pages Sequential

More information

Objective-C Part 2 (ECS189H) Ken Joy Serban Porumbescu

Objective-C Part 2 (ECS189H) Ken Joy Serban Porumbescu Objective-C Part 2 (ECS189H) Ken Joy joy@cs.ucdavis.edu Serban Porumbescu porumbes@cs.ucdavis.edu Today Objective-C Memory Management Properties Categories and Protocols Delegates Objective-C Memory Management

More information

This reference will take you through simple and practical approach while learning Objective-C Programming language.

This reference will take you through simple and practical approach while learning Objective-C Programming language. About the Tutorial Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. This is the main programming language used by

More information

OBJECTIVE-C BEST PRACTICES IN A TEAM ENVIRONMENT

OBJECTIVE-C BEST PRACTICES IN A TEAM ENVIRONMENT OBJECTIVE-C BEST PRACTICES IN A TEAM ENVIRONMENT by Rolin Nelson Presented at JaxMUG March 2013 1 GOALS Introduce / review Objective-C core features Review recent additions to Objective-C Discuss and propose

More information

Data Management: Event Handling

Data Management: Event Handling Exception Programming Topics Data Management: Event Handling 2010-02-24 Apple Inc. 2002, 2010 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,

More information

Common Misunderstandings from Exam 1 Material

Common Misunderstandings from Exam 1 Material Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself

More information

When Swift met classic algorithms and data structures. Caveats & Tips

When Swift met classic algorithms and data structures. Caveats & Tips When Swift met classic algorithms and data structures Caveats & Tips Given an array of numbers, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.

More information

C Blocks Block CPRE 388

C Blocks Block CPRE 388 C Blocks CPRE 388 C Blocks int multiplier = 7; int (^myblock)(int) = ^(int num) { return num * multiplier; li li }; Notice that the block is able to make use of variables from the same scope in which

More information

CSE 143. Linked Lists. Linked Lists. Manipulating Nodes (1) Creating Nodes. Manipulating Nodes (3) Manipulating Nodes (2) CSE 143 1

CSE 143. Linked Lists. Linked Lists. Manipulating Nodes (1) Creating Nodes. Manipulating Nodes (3) Manipulating Nodes (2) CSE 143 1 CSE 143 Linked Lists [Chapter 4; Chapter 6, pp. 265-271] Linked Lists A linked list is a collection of dynamically allocated nodes Each node contains at least one member (field) that points to another

More information

CS193E Lecture 14. Cocoa Bindings

CS193E Lecture 14. Cocoa Bindings CS193E Lecture 14 Cocoa Bindings Agenda Questions? Personal Timeline IV Key Value Coding Key Value Observing Key Value Binding Cocoa Bindings What are Cocoa Bindings? Added in Panther, more mature in Tiger

More information

OVERVIEW. Why learn ios programming? Share first-hand experience. Identify platform differences. Identify similarities with.net

OVERVIEW. Why learn ios programming? Share first-hand experience. Identify platform differences. Identify similarities with.net OVERVIEW Why learn ios programming? Share first-hand experience. Identify platform differences. Identify similarities with.net Microsoft MVP for 4 years C#, WinForms, WPF, Silverlight Joined Cynergy about

More information

Questions. Exams: no. Get by without own Mac? Why ios? ios vs Android restrictions. Selling in App store how hard to publish? Future of Objective-C?

Questions. Exams: no. Get by without own Mac? Why ios? ios vs Android restrictions. Selling in App store how hard to publish? Future of Objective-C? Questions Exams: no Get by without own Mac? Why ios? ios vs Android restrictions Selling in App store how hard to publish? Future of Objective-C? Grading: Lab/homework: 40%, project: 40%, individual report:

More information

JAVA MOCK TEST JAVA MOCK TEST II

JAVA MOCK TEST JAVA MOCK TEST II http://www.tutorialspoint.com JAVA MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Java Framework. You can download these sample mock tests at your

More information

CS193E Lecture 7. Document-based Applications NSTableView Key-Value Coding

CS193E Lecture 7. Document-based Applications NSTableView Key-Value Coding CS193E Lecture 7 Document-based Applications NSTableView Key-Value Coding Agenda Questions? Review: delegates, MVC Document-based apps Table views Key Value Coding Model, View, Controller Controller Model

More information

Building Better Apps with Value Types in Swift Session 414

Building Better Apps with Value Types in Swift Session 414 Developer Tools #WWDC15 Building Better Apps with Value Types in Swift Session 414 Doug Gregor Language Lawyer Bill Dudney Arranger of Bits 2015 Apple Inc. All rights reserved. Redistribution or public

More information

Data IAP 2010 iphonedev.csail.mit.edu edward benson / Thursday, January 14, 2010

Data IAP 2010 iphonedev.csail.mit.edu edward benson / Thursday, January 14, 2010 Data IAP 2010 iphonedev.csail.mit.edu edward benson / eob@csail.mit.edu Today Property Lists User Defaults Settings Panels CoreData Property Lists Today Add persistence. plist 1. Using Property Lists in

More information

CS2141 Software Development using C/C++ C++ Basics

CS2141 Software Development using C/C++ C++ Basics CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short

More information

Objective-C Primer. iphone Programmer s Association. Lorenzo Swank September 10, 2008

Objective-C Primer. iphone Programmer s Association. Lorenzo Swank September 10, 2008 Objective-C Primer iphone Programmer s Association Lorenzo Swank September 10, 2008 Disclaimer Content was blatantly and unapologetically stolen from the WWDC 2007 Fundamentals of Cocoa session, as well

More information

DYNAMIC ARRAYS; FUNCTIONS & POINTERS; SHALLOW VS DEEP COPY

DYNAMIC ARRAYS; FUNCTIONS & POINTERS; SHALLOW VS DEEP COPY DYNAMIC ARRAYS; FUNCTIONS & POINTERS; SHALLOW VS DEEP COPY Pages 800 to 809 Anna Rakitianskaia, University of Pretoria STATIC ARRAYS So far, we have only used static arrays The size of a static array must

More information

ITP 342 Advanced Mobile App Dev. Memory

ITP 342 Advanced Mobile App Dev. Memory ITP 342 Advanced Mobile App Dev Memory Memory Management Objective-C provides two methods of application memory management. 1. In the method described in this guide, referred to as manual retain-release

More information

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes Review iphone Application Programming Lecture 2: Objective-C, Cocoa Device restrictions Gero Herkenrath Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone

More information

Review. Objective-C Classes, Methods, Properties, Protocols, Delegation, Memory Management

Review. Objective-C Classes, Methods, Properties, Protocols, Delegation, Memory Management Data Persistence Review Objective-C Classes, Methods, Properties, Protocols, Delegation, Memory Management Foundation NSArray, NSDictionary, NSString (and mutable versions thereof) MVC and UIViewController

More information

COPYRIGHTED MATERIAL. part I Developing a Professional UI. Chapter 1: Creating a Personal Library. Chapter 2: Advancing with Tableviews

COPYRIGHTED MATERIAL. part I Developing a Professional UI. Chapter 1: Creating a Personal Library. Chapter 2: Advancing with Tableviews part I Developing a Professional UI Chapter 1: Creating a Personal Library Chapter 2: Advancing with Tableviews Chapter 3: Advancing with Map Kit Chapter 4: Understanding Action Views and Alerts Chapter

More information

COMP327 Mobile Computing Session: Tutorial Objective-C and the Foundation Framework

COMP327 Mobile Computing Session: Tutorial Objective-C and the Foundation Framework COMP327 Mobile Computing Session: 2010-2011 Tutorial 4-5 - Objective-C and the Foundation Framework 1 In these Tutorial Slides... These slides introduce you to Objective-C, with a focus on the object-oriented

More information

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes Review iphone Application Programming Lecture 2: Objective-C, Cocoa Device restrictions Gero Herkenrath Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone

More information

Design Phase. Create a class Person. Determine the superclass. NSObject (in this case)

Design Phase. Create a class Person. Determine the superclass. NSObject (in this case) Design Phase Create a class Person Determine the superclass NSObject (in this case) 8 Design Phase Create a class Person Determine the superclass NSObject (in this case) What properties should it have?

More information

Stanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011

Stanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011 Developing Applications for ios Today Persistence How to make things stick around between launchings of your app (besides NSUserDefaults) Persistence Property Lists Use writetourl:atomically: and initwithcontentsofurl:

More information

primitive arrays v. vectors (1)

primitive arrays v. vectors (1) Arrays 1 primitive arrays v. vectors (1) 2 int a[10]; allocate new, 10 elements vector v(10); // or: vector v; v.resize(10); primitive arrays v. vectors (1) 2 int a[10]; allocate new, 10 elements

More information

Managed Object Model schema Persistent Store Coordinator connection Managed Object Context scratch pad

Managed Object Model schema Persistent Store Coordinator connection Managed Object Context scratch pad CoreData Tutorial What is CoreData? CoreData Stack Managed Object Model: You can think of this as the database schema. It is a class that contains definitions for each of the objects (also called Entities

More information

Armide Documentation. Release Kyle Mayes

Armide Documentation. Release Kyle Mayes Armide Documentation Release 0.3.1 Kyle Mayes December 19, 2014 Contents 1 Introduction 1 1.1 Features.................................................. 1 1.2 License..................................................

More information

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010 Developing Applications for iphone 4, ipod Touch, & ipad Today More Core Data What does the code for the custom NSManagedObject subclasses generated by Xcode look like? Querying for (fetching) objects

More information

Data Storage. Dr. Sarah Abraham

Data Storage. Dr. Sarah Abraham Data Storage Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2016 Model Layer of MVC Contains the data to be displayed Data can be: Stored on device Pulled down from a server Data displayed

More information

Fox Documentation. Release Jeff Hui

Fox Documentation. Release Jeff Hui Fox Documentation Release 1.0.0 Jeff Hui December 14, 2014 Contents 1 Getting Started 3 2 Generators 5 3 The Runner 7 3.1 What is Fox?............................................... 7 3.2 Installation................................................

More information

Cocoa Programming. David Chisnall. March 18,

Cocoa Programming. David Chisnall. March 18, March 18, 2010 http://cs.swan.ac.uk/~csdavec/papers/safariwebcast.pdf The Story So Far What is Cocoa? Why Cocoa? GNUstep Overview GNUstep Look and Feel A Brief History of Objective-C 1980: Smalltalk-80

More information

C:\Temp\Templates. Download This PDF From The Web Site

C:\Temp\Templates. Download This PDF From The Web Site 11 2 2 2 3 3 3 C:\Temp\Templates Download This PDF From The Web Site 4 5 Use This Main Program Copy-Paste Code From The Next Slide? Compile Program 6 Copy/Paste Main # include "Utilities.hpp" # include

More information

Linked List using a Sentinel

Linked List using a Sentinel Linked List using a Sentinel Linked List.h / Linked List.h Using a sentinel for search Created by Enoch Hwang on 2/1/10. Copyright 2010 La Sierra University. All rights reserved. / #include

More information

GNUstep Database Library Introduction

GNUstep Database Library Introduction GNUstep Database Library Introduction c 2006 Free Software Foundation Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice

More information

src7-malan/c/array/array/main.c // main.c // Array // David J. Malan // Harvard University // // Demonstrates arrays. 11.

src7-malan/c/array/array/main.c // main.c // Array // David J. Malan // Harvard University // // Demonstrates arrays. 11. src7-malan/c/array/array/main.c 1 1 1 1 2 2 2 2 2 2 2 2 2 30. 3 3 3 main.c Array David J. Malan Harvard University malan@harvard.edu Demonstrates arrays. #include int main(int argc, const char

More information

Mobile Application Programming. Objective-C Classes

Mobile Application Programming. Objective-C Classes Mobile Application Programming Objective-C Classes Custom Classes @interface Car : NSObject #import Car.h + (int) viper; - (id) initwithmodel:(int)m; @implementation Car Point position; float velocity;

More information

Introductory ios Development

Introductory ios Development Instructor s Introductory ios Development Unit 3 - Objective-C Classes Introductory ios Development 152-164 Unit 3 - Swift Classes Quick Links & Text References Structs vs. Classes Structs intended for

More information

CS 520 Theory and Practice of Software Engineering Fall 2018

CS 520 Theory and Practice of Software Engineering Fall 2018 Logistics CS 520 Theory and Practice of Software Engineering Fall 2018 Best and worst programming practices September 11, 2018 Reminder Recap: software architecture vs. design Class website: https://people.cs.umass.edu/~brun/class/2018fall/cs520/

More information

ECE 2035 Programming HW/SW Systems Spring problems, 7 pages Exam One Solutions 4 February 2013

ECE 2035 Programming HW/SW Systems Spring problems, 7 pages Exam One Solutions 4 February 2013 Problem 1 (3 parts, 30 points) Code Fragments Part A (5 points) Write a MIPS code fragment that branches to label Target when register $1 is less than or equal to register $2. You may use only two instructions.

More information

CS 520 Theory and Practice of Software Engineering Fall 2017

CS 520 Theory and Practice of Software Engineering Fall 2017 Logistics CS 520 Theory and Practice of Software Engineering Fall 2017 Best and worst programming practices September 12, 2017 Recap: software architecture vs. design Recap: software architecture examples

More information

Spring 2008 Data Structures (CS301) LAB

Spring 2008 Data Structures (CS301) LAB Spring 2008 Data Structures (CS301) LAB Objectives The objectives of this LAB are, o Enabling students to implement Singly Linked List practically using c++ and adding more functionality in it. o Enabling

More information

ITP 342 Mobile App Dev. Data Types

ITP 342 Mobile App Dev. Data Types ITP 342 Mobile App Dev Data Types Types of Data Types C Primitives The vast majority of Objective-C s primitive data types are adopted from C, although it does define a few of its own to facilitate its

More information

Objective-C and Cocoa User Guide and Reference Manual

Objective-C and Cocoa User Guide and Reference Manual Objective-C and Cocoa User Guide and Reference Manual Version 7.1 Copyright and Trademarks LispWorks Objective-C and Cocoa Interface User Guide and Reference Manual Version 7.1 March 2017 Copyright 2017

More information

Stanford CS193p. Developing Applications for ios. Winter CS193p! Winter 2015

Stanford CS193p. Developing Applications for ios. Winter CS193p! Winter 2015 Stanford CS193p Developing Applications for ios Today More Swift & the Foundation Framework Optionals and enum Array, Dictionary, Range, et. al. Data Structures in Swift Methods Properties Initialization

More information

CS 520 Theory and Practice of Software Engineering Fall 2017

CS 520 Theory and Practice of Software Engineering Fall 2017 CS 520 Theory and Practice of Software Engineering Fall 2017 Best and worst programming practices September 12, 2017 Logistics Recap: software architecture vs. design Specification Architecture Development

More information

Concepts in Objective-C Programming

Concepts in Objective-C Programming Concepts in Objective-C Programming Contents About the Basic Programming Concepts for Cocoa and Cocoa Touch 7 At a Glance 7 How to Use This Document 7 Prerequisites 8 See Also 8 Class Clusters 9 Without

More information

Acollada ios Charting Components

Acollada ios Charting Components Acollada ios Charting Components Acollada ios Charting Components... 1 LineChartView... 3 Description... 3 Screenshot... 3 Protocols to be implemented... 3 Customizing the LineChartView aspect... 4 How

More information

Call The Project Dynamic-Memory

Call The Project Dynamic-Memory 1 2 2 Call The Project Dynamic-Memory 4 4 Copy-Paste Main # include "Utilities.hpp" int main(int argc, char * argv[]) { short int *PtrNo; (*PtrNo) = 5; printf ("(*PtrNo) = %d\n", (*PtrNo)); } getchar();

More information

CS193P - Lecture 3. iphone Application Development. Custom Classes Object Lifecycle Autorelease Properties

CS193P - Lecture 3. iphone Application Development. Custom Classes Object Lifecycle Autorelease Properties CS193P - Lecture 3 iphone Application Development Custom Classes Object Lifecycle Autorelease Properties 1 Announcements Assignments 1A and 1B due Wednesday 1/13 at 11:59 PM Enrolled Stanford students

More information