iPhone Tutorial 2 (Interface Builder – Downloader)
Posted on: February 8th, 2010
Tags: interface builder, UIButton, UITextField, UITextView
In diesem Tutorial geht es darum ein einfaches iPhone-App zu erstellen, dass eine beliebige Url herunterläd und den Inhalt ausgibt. Zusätzlich wird der Interface Builder kurz vorgestellt.
Wenn die iPhone SDK bereits installiert wurde, erscheint das folgende Fenseter mit den iPhone Projekt Templates. Wir wählen das Letzte “Window-Based Application” und nennen das Projekt “downloader”.

Wenn wir unmittelbar nach dem Erstellen des Projekts auf “Build and Go” klicken erscheint ein leeres Fenster. Als nächstes werden wir ein kleines Formular mit Textbox, Button und Textarea kreieren.
Dazu öffnen wir die Datei MainWindow.xib (Mehr zur Bedeutung der Standard Dateien finden Sie hier). Das ist die Ansicht (View), die als Erstes gestartet wird.
Wenn sich der Interface-Builder gestartet hat, fügen wir über die Library ein UITextField, ein UIButton und ein UITextView zum leeren Fenster hinzu. Dannach sollte das Fenster wie folgt aussehen.

Als nächstes müssen wir die Delegationen für diese drei Elemente (UITextField, UIButton und UITextView) definieren.
Dies geschiet in der Header-Datei downloaderAppDelegate.h.
@interface downloaderAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
// Die Url-Eingabe
IBOutlet UITextField * url;
// Die Ausgabe
IBOutlet UITextView * content;
}
// Unser Download-Button
- (IBAction)download:(id)sender;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
Die Funktion IBAction wird später der Click-Event des Download-Buttons.
Jetzt müssen wir die beiden deklarierten IBOutlet und unsere IBAction mit den Elementen verknüpfen. Dazu öffnen wir wieder die Datei MainWindow.xib und somit den Interface-Builder. Um ein Element zu verknüpfen kann der Connections Inspector verwendet werden oder es wird mit der rechten Maustaste auf das gewünschte Objekt geklickt (siehe folgende Abbildungen).

Rechtsklick auf das UITextField und im Menu rechts neben “New Referencing Outlet” auf den Kreis klicken und mit der Maus auf downloaderAppDelegate ziehen und Variable url auswählen.
Nun verknüpfen wir den Button mit der IBAction, damit wir später den Click-Event bekommen.

Rechtsklick auf den UIButton und im Menu rechts neben “Touch Up Inside” auf den Kreis klicken und mit der Maus auf downloaderAppDelegate ziehen und Variable download auswählen.
Jetzt brauchen wir noch das UITextView zu verknüpfen. Das geschieht gleich wie beim UITextField.
Wenn das getan ist und das Progamm immer noch startet, können wir mit dem eigentlichen Programmieren beginnen.
Dazu öffnen wir die Datei downloaderAppDelegate.m und passen den Code wie folgt an.
@implementation downloaderAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//Starttext
content.text = @"Enter a url and press \"Download\"";
//Url Vorschlag
url.text = @"http://www.simra.ch/";
// Override point for customization after application launch
[window makeKeyAndVisible];
}
//Click Event des Download Buttons
- (IBAction)download:(id)sender
{
//Statustext
content.text=@"downloading...\nplease wait...";
//Url anfordern
NSURLRequest *req=[NSURLRequest requestWithURL:[NSURL URLWithString:url.text]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30.0];
NSURLResponse *res = nil;
NSError *err = nil;
NSData *dat = [NSURLConnection sendSynchronousRequest: req returningResponse: &res error: &err];
if(res){
NSString * str = [[NSString alloc] initWithData:dat encoding:NSUTF8StringEncoding];
content.text =str;
} else {
// Vorgang fehlgeschlagen -> Meldung ausgeben
content.text = @"Url couldn't be downloaded...";
UIAlertView *msg = [[UIAlertView alloc] initWithTitle: @"Error" message: @"Url couldn't be downloaded" delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil];
[msg show];
[msg release];
}
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end
Das ganze Projekt kann hier heruntergeladen werden.
Posted in iphone | Trackback Url








No Responses to “iPhone Tutorial 2 (Interface Builder – Downloader)”
Trackbacks/Pingbacks
Leave a reply