objective-c & cocoa touch725g60/material/screencast/objective-c.pdf · cocoa touch! • samling...

16
Applikationsutveckling för iPhone och iPad, 725G60 Objective-C & Cocao Touch

Upload: others

Post on 22-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

Applikationsutveckling för iPhone och iPad, 725G60

Objective-C & Cocao Touch

Page 2: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

Förkunskaper

Objektorienterad programmering

• Java

• C++

• C#

• Kunskaper i C är 👍

Page 3: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

Objective -C

• Utökning av C (Objektorientering tillagt)• Lånar syntax från Smalltalk

• Cocoa Touch

Page 4: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

C

• Funktioner

• Struct

• Pekare

• Loopar

• Variabler

Page 5: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

C

.h.m

Page 7: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

Syntax

• Instanserna Obejekt

• Factory metod

• alloc initAltid nästla altid dessa tillsammans

Page 10: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

Metoder

• .KlassmetoderReturvärde och argument

• .InstansmetoderReturvärde och argument

Page 12: Objective-C & Cocoa Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

• 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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

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 Touch725G60/material/screencast/objective-c.pdf · Cocoa Touch! • Samling av ramverk för utveckling under iOS Primärt utvecklat i Objective-C. (Vissa delar

• 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