Files & Archiving. Lecture 8

Size: px
Start display at page:

Download "Files & Archiving. Lecture 8"

Transcription

1 Files & Archiving Lecture 8

2 Persistent Data

3 NSUserDefaults Dead simple to use Just one big file Only supports property list types What if you want more features?

4 File Tasks Finding the file path User selected Internal application data Saving or loading file data Text files, property lists, custom objects

5 Finding the File NSOpenPanel

6 Finding the File NSOpenPanel NSOpenPanel *panel = [NSOpenPanel openpanel]; [panel beginsheetfordirectory:nil file:nil types:[nsarray arraywithobject:@"jpg"] modalforwindow:window modaldelegate:self didendselector:@selector(openpaneldidend:returncode:contextinfo:) contextinfo:null]; - (void)openpaneldidend:(nssavepanel *)sheet { } returncode:(int)returncode contextinfo:(void *)contextinfo if (returncode == NSOKButton) [self openfrompath:[sheet filename]];

7 Finding the File NSSavePanel

8 Finding the File NSSavePanel NSSavePanel *panel = [NSSavePanel savepanel]; [panel setallowedfiletypes:[nsarray arraywithobject:@"txt"]]; [panel beginsheetfordirectory:nil file:nil modalforwindow:window modaldelegate:self didendselector:@selector(savepaneldidend:returncode:contextinfo:) contextinfo:null]; - (void)savepaneldidend:(nssavepanel *)sheet { } returncode:(int)returncode contextinfo:(void *)contextinfo if (returncode == NSOKButton) [self savetopath:[sheet filename]];

9 Finding the File Application Support Any other files associated with your application should go in ~/Library/ Application Support/YourApp Use the C function NSSearchPathForDirectoriesInDomains to find it Use NSFileManager to create your subdirectory

10 NSFileManager Creates, deletes, and moves files and directories Sets attributes and makes symbolic links Supports iterating through the files in a directory with contentsofdirectoryatpath:error:

11 Application Support & NSFileManager NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); if ([paths count] == 0) { // handle error } NSString *applicationsupport = [paths objectatindex:0]; NSString *appdir = [applicationsupport stringbyappendingpathcomponent:@"myappname"]; if (![[NSFileManager defaultmanager] fileexistsatpath:appdir]) [[NSFileManager defaultmanager] createdirectoryatpath:appdir attributes:nil];

12 NSDocument Used to create document-based applications Handles saving and loading, undo, printing, and some window management

13 Saving & Loading File Data

14 Text Files To initialize from a file, [[NSString alloc] initwithcontentsoffile:@"/a/b.txt" encoding:nsutf8stringencoding error:&error] To save to a file, [string writetofile:@"/a/b.txt" atomically:yes encoding:enc error:&error]

15 Collections of Property List Objects If you have an NSArray or NSDictionary of property list objects (instances of NSData, NSDate, NSNumber, NSString, NSArray, or NSDictionary), you can use writetofile:atomically: and initwithcontentsoffile: to easily read and write the collection See also: NSPropertyListSerialization

16 Other Classes Various other classes support saving and loading Look for initwithcontentsoffile: and writetofile: methods Some classes (NSImage, for example) use NSData for saving and loading

17 Reading NSData Represents a chunk of binary data Load from a file with initwithcontentsoffile:@"/a/b.txt" Load from a URL with initwithcontentsofurl:[nsurl URLWithString:@" Load from a C array with initwithbytes:arr length:len

18 Loading NSData Many Cocoa classes support loading from NSData Images [[NSImage alloc] initwithdata:data] Sounds [[NSSound alloc] initwithdata:data] PDFs [[PDFDocument alloc] initwithdata:data]

19 Generating NSData Many Cocoa classes can also be turned into NSData Attributed text to RTF data [attributedstring RTFFromRange:attributes:] PDF documents [pdfdocument datarepresentation] Images [image TIFFRepresentation]

20 Writing NSData Once you have an NSData object, you can write it to a file with [data writetofile:@"/a/b.ext" atomically:yes] NSData objects are also property list objects, meaning you can read and write them using NSUserDefaults, NSDictionary, or NSArray

21 What about custom objects?

22 NSCoding NSCoding is a protocol your class can implement to enable archiving and unarchiving A protocol specifies a set of methods your class must implement Theyʼre like Java interfaces, if youʼve seen those

23 MyObject : NSObject <NSCoding> { NSString *name; int age; retain) NSString int age; - (id)initwithname:(nsstring *)name age:(int)age; - (id)initwithcoder:(nscoder *)coder; - (void)encodewithcoder:(nscoder

24 encodewithcoder: For each variable you want to save, call [coder encodetype:var Each object you encode with encodeobject:forkey: must implement NSCoding as well If the superclass implements NSCoding, call [super encodewithcoder:coder]

25 encodewithcoder: - (void)encodewithcoder:(nscoder *)coder { [coder encodeobject:author forkey:@"author"]; [coder encodeobject:title forkey:@"title"]; [coder encodeobject:chapters forkey:@"chapters"]; [coder encodeint:callnumber forkey:@"callnumber"]; } An encodewithcoder: implementation for a Book class

26 initwithcoder: The inverse of encodewithcoder: for each encoded key, call [coder If itʼs an object, remember to retain it This is still an init method donʼt forget [super init] and return self

27 initwithcoder: - (id)initwithcoder:(nscoder *)coder { if (![super init]) { return nil; } author = [[coder decodeobjectforkey:@"author"] retain]; title = [[coder decodeobjectforkey:@"title"] retain]; chapters = [[coder decodeobjectforkey:@"chapters"] retain]; callnumber = [coder decodeintforkey:@"callnumber"]; return self; } An initwithcoder: implementation for the same Book class

28 Saving and Loading NSCoding Objects

29 NSKeyedArchiver & NSKeyedUnarchiver Handles reading and writing (to files or NSData) for NSCoding objects NSKeyedArchiver archiveddatawithrootobject: archiverootobject:tofile: NSKeyedUnarchiver unarchiveobjectwithdata: unarchiveobjectwithfile:

30 NSKeyedArchiver & NSKeyedUnarchiver MyObject *x = [[MyObject alloc] init], *y; NSString *f [NSKeyedArchiver archiverootobject:x tofile:f]; y = [NSKeyedUnarchiver unarchiveobjectwithfile:f]; // x and y should now have the same data

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

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

ITP 342 Mobile App Development. Data Persistence

ITP 342 Mobile App Development. Data Persistence ITP 342 Mobile App Development Data Persistence Persistent Storage Want our app to save its data to persistent storage Any form of nonvolatile storage that survives a restart of the device Want a user

More information

ITP 342 Mobile App Development. Data Persistence

ITP 342 Mobile App Development. Data Persistence ITP 342 Mobile App Development Data Persistence Persistent Storage Want our app to save its data to persistent storage Any form of nonvolatile storage that survives a restart of the device Want a user

More information

Life Cycle. Chapter Explore the Game Application. Understanding the Views in a Game

Life Cycle. Chapter Explore the Game Application. Understanding the Views in a Game 3 Chapter Explore the Game Application Life Cycle There is more to a game than just the fun parts. Almost all of the games on the market, and definitely the big titles, involve multiple views and a reasonably

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

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

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 Today Shutterbug Map Demo Final part: customizing the callout. Final Projects Requirements Some ideas from the Stanford community Persistence (time-permitting) More ways

More information

Mobile Application Development L12: Storage & Communication

Mobile Application Development L12: Storage & Communication Mobile Application Development L12: Storage & Communication Jonathan Diehl (Informatik 10) Hendrik Thüs (Informatik 9) Data Storage & Communication Serialization & File Management SQLite Database CoreData

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 10: Managing and Storing Data Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content Property Lists Archiving

More information

ITP 342 Advanced Mobile App Dev. Core Data

ITP 342 Advanced Mobile App Dev. Core Data ITP 342 Advanced Mobile App Dev Core Data Persistent Data NSUser Defaults Typically used to save app preferences Property List (plist) in Documents Directory Data is in a dictionary or an array Coders

More information

COMP327 Mobile Computing Session: Lecture Set 4 - Data Persistence, Core Data and Concurrency

COMP327 Mobile Computing Session: Lecture Set 4 - Data Persistence, Core Data and Concurrency COMP327 Mobile Computing Session: 2012-2013 Lecture Set 4 - Data Persistence, Core Data and Concurrency 1 In these Slides... We will cover... An introduction to Local Data Storage The iphone directory

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

Cocoa, Objective C - Alert Panels!

Cocoa, Objective C - Alert Panels! Cocoa, Objective C - Alert Panels By Debasis Das March - 2014 1 of 13 Alerts are key to any application. Some of the usages of an application alerts are as - To display an informative message - To take

More information

Mobile Application Programming. Data and Persistence

Mobile Application Programming. Data and Persistence Mobile Application Programming Data and Persistence Data Files Data Files Lots of C compatibility knowledge required! FILE fopen() fread() vfscanf() fwrite() vfprintf() fclose() Data Files NSData(contentsOfFile:)

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

Mobile Application Programming. Data and Persistence

Mobile Application Programming. Data and Persistence Mobile Application Programming Data and Persistence Messaging Options Handler Delegate Handler Collection Controller View Notification Center Model The Model Controller Model View Model Source of data

More information

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios WS 2011 Prof. Dr. Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Today Saving data Networking Location Sensors Exercise 2 2 Timeline # Date

More information

Data Management: Data Types & Collections

Data Management: Data Types & Collections Property List Programming Guide Data Management: Data Types & Collections 2010-03-24 Apple Inc. 2010 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval

More information

Object-Oriented Programming with Objective-C. Lecture 2

Object-Oriented Programming with Objective-C. Lecture 2 Object-Oriented Programming with Objective-C Lecture 2 Objective-C A Little History Originally designed in the 1980s as a fusion of Smalltalk and C Popularized by NeXTSTEP in 1988 (hence the ubiquitous

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

CSCI 251: iphone Application Development

CSCI 251: iphone Application Development CSCI 251: iphone Application Development Spring Term 2012 Lecture #3: Handling Data (Chater 8) Handling Data (from the Internet) Handling XML (structured data formatted as text) Handling (unformatted)

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

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

Lab #1: Chuck Norris Joke Generator Class

Lab #1: Chuck Norris Joke Generator Class Lab #1: Chuck Norris Joke Generator Class Chuck Norris does not need Twitter... he is already following you. Chuck Norris doesnʼt flush the toilet, he scares the sh*t out of it. Chuck Norris is the reason

More information

About MSDOSX. Lecture 0

About MSDOSX. Lecture 0 About MSDOSX Lecture 0 Goal: make an app of your own design for the Mac or iphone The Plan Lectures + Labs for several weeks Project proposals (about halfway through the semester) Work on project Present

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

InterfaceBuilder and user interfaces

InterfaceBuilder and user interfaces ES3 Lab 2 InterfaceBuilder and user interfaces This lab InterfaceBuilder Creating components Linking them to your code Adding buttons, labels, sliders UITableView Creating a tableview Customizing cells

More information

Persistence. CS 442: Mobile App Development Michael Saelee

Persistence. CS 442: Mobile App Development Michael Saelee Persistence CS 442: Mobile App Development Michael Saelee Things to persist - Application settings - Application state - Model data - Model relationships Persistence options - 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

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

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

Cross Platform Nearby Networking

Cross Platform Nearby Networking Core OS #WWDC14 Cross Platform Nearby Networking Session 709 Demijan Klinc Software Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

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

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 icloud Sharing documents among a user s devices Fundamentally: nothing more than a URL of a shared directory However, since it is over the network, there are lots

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

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

From Hello World to Finished App. raywenderlich.com

From Hello World to Finished App. raywenderlich.com From Hello World to Finished App Why Learn ios? - Strong demand - Motivating - App Store - It s fun! What s This All About? - One Day Crash Course - For beginners & intermediates - Making apps with UIKit

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

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

Advanced ios. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 20 11/01/2012

Advanced ios. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 20 11/01/2012 Advanced ios CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 20 11/01/2012 1 Goals of the Lecture Present a few additional topics and concepts related to ios programming persistence serialization

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

Announcement. Final Project Proposal Presentations and Updates

Announcement. Final Project Proposal Presentations and Updates Announcement Start Final Project Pitches on Wednesday Presentation slides dues by Tuesday at 11:59 PM Email slides to cse438ta@gmail.com Extensible Networking Platform 1 1 - CSE 438 Mobile Application

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

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

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

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

Advanced Memory Analysis with Instruments. Daniel Delwood Performance Tools Engineer

Advanced Memory Analysis with Instruments. Daniel Delwood Performance Tools Engineer Advanced Memory Analysis with Instruments Daniel Delwood Performance Tools Engineer 2 Memory Analysis What s the issue? Memory is critical to performance Limited resource Especially on iphone OS 3 4 Memory

More information

Bindings Example Exercise James Dempsey - WWDC Pre-Show Cocoa Workshop

Bindings Example Exercise James Dempsey - WWDC Pre-Show Cocoa Workshop Bindings Example Exercise James Dempsey - WWDC Pre-Show Cocoa Workshop In this exercise you will create a basic document-based application using Cocoa Bindings. This application will allow the user to

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

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

Covers ios 6. Bear Cahill. Includes 98 Techniques MANNING

Covers ios 6. Bear Cahill. Includes 98 Techniques MANNING Bear Cahill Covers ios 6 Includes 98 Techniques MANNING ios in Practice by Bear Cahill Chapter 5 Copyright 2012 Manning Publications brief contents PART 1 GETTING STARTED...1 1 Getting started with ios

More information

Cocoa and Objective-C Cookbook

Cocoa and Objective-C Cookbook Cocoa and Objective-C Cookbook Move beyond basic Cocoa development using over 70 simple and effective recipes for Mac OS X development Jeff Hawkins BIRMINGHAM - MUMBAI Cocoa and Objective-C Cookbook Copyright

More information

AsyncNetwork Cocoa & ios Networking Evolved

AsyncNetwork Cocoa & ios Networking Evolved AsyncNetwork Cocoa & ios Networking Evolved Open Source (MIT License) github.com/jdiehl/async-network jonathan.diehl@rwth-aachen.de Client/Server One Server Many Clients Listen to incoming connections

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

CS193E Lecture 12. Formatters Cocoa Text More View Drawing

CS193E Lecture 12. Formatters Cocoa Text More View Drawing CS193E Lecture 12 Formatters Cocoa Text More View Drawing Quick Scroll View Demo Announcements Questions on previous material or assignment? If you don t get a grade by Sunday, please let us know Some

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

A Mobile Mapping Application

A Mobile Mapping Application A Mobile Mapping Application MANNING SHELTER ISLAND A Mobile Mapping Application A special edition ebook Copyright 2013 Manning Publications contents about mobile mapping about this ebook v about the authors

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

Code Examples. C# demo projects. PHP Rest Client

Code Examples. C# demo projects. PHP Rest Client Code Examples Developers please use https://api-stage.bimplus.net/v2 (stage version of bim+ API) and http://portal-stage.bimplus.net/ (stage version of Shop/Portal) for testing purposes. The production

More information

CS193E Lecture 11. Copy/Paste & Pasteboards Scrolling Printing

CS193E Lecture 11. Copy/Paste & Pasteboards Scrolling Printing CS193E Lecture 11 Copy/Paste & Pasteboards Scrolling Printing Agenda Questions on previous material or assignment? Start thinking about final projects! Demo PersonalTimeline 2.5 Copy and Paste Scrolling

More information

Contents. iphone Training. Industry Trainers. Classroom Training Online Training ON-DEMAND Training. Read what you need

Contents. iphone Training. Industry Trainers. Classroom Training Online Training ON-DEMAND Training. Read what you need iphone Training Contents About iphone Training Our ios training classes can help you get off to a running start in iphone, ipod and ipad app development. Learn from expert Objective-C developers with years

More information

Lab #1: Chuck Norris Joke Generator Class

Lab #1: Chuck Norris Joke Generator Class Lab #1: Chuck Norris Joke Generator Class Chuck Norris does not need Twitter... he is already following you. Chuck Norris doesn t flush the toilet, he scares the sh*t out of it. Chuck Norris is the reason

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

Cocoa Development Tips

Cocoa Development Tips Session App Frameworks #WWDC17 Cocoa Development Tips Twenty-nine things you may not know about Cocoa 236 Rachel Goldeen, Cocoa Engineer Vincent Hittson, Cocoa Engineer 2017 Apple Inc. All rights reserved.

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

Principles of Programming Languages. Objective-C. Joris Kluivers

Principles of Programming Languages. Objective-C. Joris Kluivers Principles of Programming Languages Objective-C Joris Kluivers joris.kluivers@gmail.com History... 3 NeXT... 3 Language Syntax... 4 Defining a new class... 4 Object identifiers... 5 Sending messages...

More information

Advanced Performance Optimization on iphone OS

Advanced Performance Optimization on iphone OS Advanced Performance Optimization on iphone OS Part 2: Working with Data Efficiently Ben Nham iphone Performance 2 Introduction Focus on working with data efficiently In-memory data structures Serialization

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

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios SS 2012 Prof. Dr. Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Today Alerts, Action Sheets, text input Table views Touch input Data management

More information

Collections. Fall, Prof. Massimiliano "Max" Pala

Collections. Fall, Prof. Massimiliano Max Pala Collections Fall, 2012 Prof. Massimiliano "Max" Pala pala@nyu.edu Overview Arrays Copy and Deep Copy Sets Dictionaries Examples Arrays Two Classes NSArray and NSMutableArray (subclass of NSArray) int main(int

More information

File System Programming Guide

File System Programming Guide File System Programming Guide Contents About Files and Directories 8 At a Glance 8 The File System Imposes a Specific Organization 8 Access Files Safely 8 How You Access a File Depends on the File Type

More information

DL/ID Parsing Component for ios

DL/ID Parsing Component for ios DL/ID Parsing Component for ios This publication contains proprietary information of Wizz Systems LLC, provided for customer use only. No other use is authorized without the express written permission

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 10: and Categories Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content and Documents This is how you

More information

Saving Data in ios Hands-On Challenges

Saving Data in ios Hands-On Challenges Saving Data in ios Hands-On Challenges Copyright 2014 Razeware LLC. All rights reserved. No part of this book or corresponding materials (such as text, images, or source code) may be reproduced or distributed

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

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

What s New in Cocoa for macos

What s New in Cocoa for macos Session #WWDC18 What s New in Cocoa for macos 209 Ali Ozer, Cocoa Frameworks Chris Dreessen, Cocoa Frameworks Jesse Donaldson, Cocoa Frameworks 2018 Apple Inc. All rights reserved. Redistribution or public

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

ITP 342 Mobile App Development. Singleton

ITP 342 Mobile App Development. Singleton ITP 342 Mobile App Development Singleton Shared Model Object A singleton is a special kind of class where only one instance of the class exists for the current process. In the case of an iphone app, the

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

AVAudioRecorder & System Sound Services

AVAudioRecorder & System Sound Services AVAudioRecorder & System Sound Services Dept. of Multimedia Science, Sookmyung Women s University. prof. JongWoo Lee Index AVAudioRecorder? - (AudioRecorder) System Sound Service? - (SysSound) AVAudioRecorder

More information

Data Storage. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder

Data Storage. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Data Storage Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Already seen UserDefaults icloud File

More information

COMP327 Mobile Computing Session:

COMP327 Mobile Computing Session: COMP327 Mobile Computing Session: 2018-2019 Lecture Set 4 - Data Persistence, & Core Data [ last updated: 16 October 2018 ] 1 In these Slides... We will cover... An introduction to Local Data Storage The

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

Agenda. Core Data! Next Week! Storing your Model permanently in an object-oriented database.! Multitasking! Advanced Segueing! Map Kit?

Agenda. Core Data! Next Week! Storing your Model permanently in an object-oriented database.! Multitasking! Advanced Segueing! Map Kit? ios Mobile Design Agenda Core Data! Storing your Model permanently in an object-oriented database.! Next Week! Multitasking! Advanced Segueing! Map Kit? Core Data Database! Sometimes you need to store

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

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

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

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 Core Data and Documents This is how you store something serious in ios Easy entreé into icloud NSNotificationCenter The little radio station we talked about in the

More information

E Event-based parser, XML, 180 Extended attributes, URLs, 118 API, 119 command line, 118 description, 118 NSURL category, 119

E Event-based parser, XML, 180 Extended attributes, URLs, 118 API, 119 command line, 118 description, 118 NSURL category, 119 Index A Access control lists (ACLs), 113 Application distribution, 353 certificate utility, 358 App ID creation, 358 App Store, 363 center, 357 no of certificates, 358 code sign identity, 362 configuring

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

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

Stanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013 Developing Applications for ios -14 Today What is this class all about? Description Prerequisites Homework / Final Project ios Overview What s in ios? MVC Object-Oriented Design Concept Objective C (Time

More information

CS193E Lecture 16. Internationalization and Localization

CS193E Lecture 16. Internationalization and Localization CS193E Lecture 16 Internationalization and Localization Announcements Final Project Due: Wed, March 19th at 11:59 PM Announcements Final Project Demos Thurs, March 20th, 3:30-6:30 Same room Plan for about

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

SQLitePersistentObjects

SQLitePersistentObjects SQLite Without the SQL Jeff LaMarche And that is spelled with an A contrary to the sign out front. Contacting Me jeff_lamarche@mac.com http://iphonedevelopment.blogspot.com Twitter: jeff_lamarche A lot

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

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

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

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