1) Student musi 1) Znać j

Transkrypt

1) Student musi 1) Znać j
Temat 1.
Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C
Wymagana wiedza wstępna:
1) Student musi
1) Znać język C
2) Znać zasady zarządzania pamięcią w komputerze
3) Znać pojecie wskaźnika
4) Znać podstawowe narzędzia tworzenia aplikacji konsolowych w C
2) Student powinien
1) Znać język C++
2) Znać podstawy programowania obiektowego
3) Student może
1) Znać język Java lub C#
Cel dydaktyczny
1) Student musi
1) Umieć stworzyć projekt aplikacji konsolowej w Xcode z wykorzystaniem
Objective-C
2) Umieć skompilować i uruchomić program w Xcode
3) Skorzystać z podstawowych klas i funkcji Objective-C
4) Nauczyć się zasad wywoływania metod w Objective-C
5) Znać zasady implementacji obiektów w Objective-C
6) Znać podstawowe proste typy danych oraz podstawowe obiektowe typy
danych
2) Student powinien
1) Umieć zaimplementować własną klasę w Objective-C
2) Rozumieć różnicę między metodami klasy a metodami obiektu
3) Umieć operować interfejsami
4) Znać zasady dziedziczenia
5) Rozumieć różnicę między metodami klasy a obiektu
6) Znać zasady dotyczące wiązań w Objective-C
3) Student może
1) Umieć tworzyć i wykorzystywać metody fabrykujące
Zakres tematyczny i laboratorium.
Niniejsze zajęcia wprowadzają studenta do świata jęyzka Objective-C, który oparty jest na
znanych wcześniej standardach języków C i C++. Student nauczy się tutaj podstawowej
obsługi środowiska Xcode i napisze proste programy z wykorzystaniem tego jezyka
Poruszane zagadnienia:
• C jako podstawa Objective-C
• Nazewnictwo plików
• Dodawanie plików nagłówkowych
• Obiektowe typy danych - klasa a obiekt
• Interfejs (*.h)
• Implementacja (*.m)
• Dziedziczenie jako sposób na zbudowanie hierarchii obiektów
Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 1/6
•
•
•
•
•
•
•
•
•
•
•
•
Zasady dotyczące nazewnictwa klas w projektach Objective-C
Prefiksy jako odpowiednik paczek z języka Java
Zarezerwowane prefiksy Apple
Typowanie (silne, słabe), typ id
Metody instancji (-) i ich zakres działania
Metody klas (+) i ich zakres działania
Słowa kluczowe sygnatury
Obiekty jako wskaźniki
Właściwości obiektu
Ustawianie i pobieranie stanu właściwości obiektu z wykorzystaniem syntaktyki "."
Metody fabrykujące
Wiązania późne w ObjectiveC
Załączniki
1. Prezentacja_1.pdf - slajdy prezentacji wykładu
2. Pokaz Xcode.mp4 - film pokazujący jak stworzyć pierwszy projekt w Xcode
Zadania na Laboratorium
Zadanie 1
Stwórz nowy projekt Xcode. Jako typ wybierz aplikację konsolową. Wypisz na
standardowe wyjście napis „Hello Xcode!”
Podpowiedzi.
1) Aplikację tworzymy wbierając Create a new Xcode project w ekranie startowym Xcode.
2) W kolejnym oknie Xcode możemy wybrać odpowiedni typ aplikacji. W niniejszym
zadaniu wybieramy Command Line Tool z sekcji OSX.
Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 2/6
3) Standardowo zostanie stworzona zwykła aplikacja C, dlatego należy zwrócić uwagę,
aby na kolejnym ekranie kreatora wybrać aplikację typu Foundation
4) Kod pełnej aplikacji (czyli zawartość pliku *.m) powinna wyglądać tak
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 3/6
NSLog(@"Hello, Xcode!");
}
return 0;
}
Zadanie 2
Stwórz klasę Objective-C, MaszynaLosujaca, posiadającą metodę -(int)losuj:(int)zakres,
losującą z zadanego zakresu liczby i wypisz 20 takich liczb na standardowe wyjście.
Podpowiedzi
1) Do losowania użyj funkcji arc4random
2) Klasa MaszynaLosujaca powinna dziedziczyc z klasy NSObject.
-(int)losuj:(int)zakres{
return arc4random()%zakres;
}
3) Kod źródłowy prawidłowego pliku nagłówkowego
#import <Foundation/Foundation.h>
@interface MaszynaLosujaca : NSObject
-(int)losuj:(int)zakres;
@end
4) Kod źródłowy klasy
#import "MaszynaLosujaca.h"
@implementation MaszynaLosujaca
-(int)losuj:(int)zakres{
return arc4random()%zakres;
}
@end
5) Tworzenie obiektu klasy
MaszynaLosujaca * m = [[MaszynaLosujaca alloc]init];
6) Wywoływanie metod na obiekcie klasy
[m losuj:43];
7) Kompletny kod pliku main.m
#import <Foundation/Foundation.h>
Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 4/6
#import "MaszynaLosujaca.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
MaszynaLosujaca * m = [[MaszynaLosujaca alloc]init];
for(int i =0;i<20;i++){
int l = [m losuj:43];
printf("%d\n",l);
}
}
return 0;
}
Zadanie 3
Napisz program Lotto, który wylosuje bez powtórzeń 6 liczb z 49. Użyj do tego celu
własnej klasy MaszynaLotto z metodą -(NSNumber)losuj.
Podpowiedzi
1) Do przechowywania numerów do wylosowania wykorzystaj NSMutableArray.
Zadeklarują ją jako właściwość klasy,
@property(nonatomic) NSMutableArray * numery;
2) Nie zapomnij o użyciu dyrektywy @synthesize żeby wygenerować metody typu get i
set dla tego pola.
@synthesize numery;
3) Zainicjalizuj pole numery we własnoręcznie stworzonym inicjalizatorze klasy.
-(id)init{
self= [super init];
if(self){
self.numery= [[NSMutableArray alloc] initWithCapacity:49];
for(int i = 1;i<=49;i++){
[self.numery addObject:[NSNumber numberWithInt:i]];
}
}
return self;
}
4) Losując obiekt z tej tablicy pamiętaj o jego usunięciu, tak aby w tablicy przy każdym
losowaniu zostawało mniej elementów.
Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 5/6
-(NSNumber*)losuj{
int w= arc4random()%self.numery.count;
NSNumber * n = [self.numery objectAtIndex:w];
[self.numery removeObject:n];
return n;
}
Zadania samodzielne
Zadanie 1
Napisz program, który będzie realizował zadanie kalkulatora (dodawanie, odejmowanie,
mnożenie i dzielenie.
Każde działanie ma być pobrane ze standardowego wejścia.
Dla każdego działania ma być stworzony obiekt klasy Działanie i przekazany do obiektu
klasy Kalkulator.
Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 6/6

Podobne dokumenty