Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! •...
Transcript of Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! •...
![Page 1: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/1.jpg)
Applikationsutveckling för iPhone och iPad, 725G60
Objective-C & Cocao Touch
![Page 2: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/2.jpg)
Förkunskaper
Objektorienterad programmering
• Java
• C++
• C#
• Kunskaper i C är 👍
![Page 3: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/3.jpg)
Objective -C
• Utökning av C (Objektorientering tillagt)• Lånar syntax från Smalltalk
• Cocoa Touch
![Page 4: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/4.jpg)
C
• Funktioner
• Struct
• Pekare
• Loopar
• Variabler
![Page 5: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/5.jpg)
C
• Funktions PekareAnvänds sällan, syntax som påminner om blocks
• MakrosAnvänds till mycket exempel importera filer eller definiera konstanser
• StaticGör så att en variabel bara instansernas en gång
![Page 6: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/6.jpg)
C
.h.m
![Page 7: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/7.jpg)
Filer
• .hDefiniera publika metoder och properties (”instans variabler”)
• .mImplementation av publika metoder och properties, Även privat metoder och properties implementeras här.
• .mmAnvänds när man vill skriva c++ kod, ingår inte i denna kursen.
![Page 8: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/8.jpg)
Impotera filer
• .h.h filer ska vara lätta, inget överflödigt ska vara här
• #includeAnvänds sällan, vanligt i C
• #importImporterar .h filer så andra klasser kan använda den klassen/framework
• @importDetta är en ny funktion i Xcode 5, snabbare kompilering och slipper linka Cocoa frameworks.
• @classAnvänd denna i din .h fil när en import är överflödig. talar om att klassen finns men inte vad den har för metoder
![Page 9: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/9.jpg)
Syntax
• Instanserna Obejekt
• Factory metod
• alloc initAltid nästla altid dessa tillsammans
![Page 10: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/10.jpg)
Instansvariabler
• Ivar
• PropertiesAnvänd alltid properties när du ska definiera instansvariabler, du får mycket gratis.Bör ange vilka attribut du vill ha, mer info om detta kommer i senare screencast.
![Page 11: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/11.jpg)
Metoder
• .KlassmetoderReturvärde och argument
• .InstansmetoderReturvärde och argument
![Page 12: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/12.jpg)
Arv
• Alla klasser i Cocoa Touch ärver från NSObject Explicit eller implicit (genom annan klass)Endast enkla arv stöds. Superklass
![Page 13: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/13.jpg)
Protokoll
• Fungerar ungefär som interface i Java • Beskriver vilka meddelanden ett objekt svarar på • Innehåller ingen kod • Båda frivilliga och obligatoriska medlemmar (@required, @optional)
Skapar ett protokollLovar att följa detta protokollet
![Page 14: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/14.jpg)
• id en pekare till ett objekt.Men vi vet inte vad för objekt det är.
• Att referera till sig själv.Nästan som this i Java. !
• BlocksVanligt som completion handler
![Page 15: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/15.jpg)
Cocoa Touch
!• Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar i C
av prestandaskäl.) • Viktiga ramverk (iOS):
• Foundation Kit – strängar, minneshantering • UIKit – GUI på iPhone • CoreData - hantering av objekt
!• Andra intressanta ramverk:
• MapKit – kartor (prefix: MK), • CoreLocation – GPS (prefix: CL) • GameKit – Enkel P2P kommunikation via blåtand (prefix: GK) • • CoreMotion – Hanterar ”rörelser”, till exempel gyro.
![Page 16: Objective-C & Cocoa Touch - IDA725G72/material/screencasts/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa](https://reader034.fdocuments.in/reader034/viewer/2022050220/5f657c86dd9509435779bbd9/html5/thumbnails/16.jpg)
• Programming with Objective-Chttps://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html
https://www.codeschool.com/courses/try-objective-c
• Try Objective-C - Code school
https://itunes.apple.com/us/book/all-the-c-you-need-to-know/id581989356?mt=11
• All the C you need to know