Night | Snow

iPhone Tutorial 2 (Interface Builder – Downloader)

Posted on: February 8th, 2010

Tags: , , ,

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.

#import <UIKit/UIKit.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.

#import "downloaderAppDelegate.h"

@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

News

Martin Fischer said:

Client and partner of simra.ch

Wir können Simon Schärer als kompetenter und zuverlässiger Programmierer höchst weiterempfehlen. Er ist nicht nur ein guter Programmierer, sondern auch ein ausgezeichneter Designer.
Danke Developer’s Island

Follow us on Twitter

favorite

I get asked a lot - which SDK should we use for web programming? I recommend Netbeans

my toolbar

Simra GameMP3 playersubscribe to RSSMy delicious bookmarksFacebookTwitterE-mail

No Responses to “iPhone Tutorial 2 (Interface Builder – Downloader)”

RSS Feed Icon  Subscribe to comments follow-up

Trackbacks/Pingbacks

Leave a reply

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Latest Tweet

loading...