Ab iOS-Programmierung für Dummies

iOS-Programmierung, Objective-C, Objektorientierung und OO-Design zusammen. Lesen Sie weiter für einige hilfreiche schnelle Tipps für OO-Design. Es ist Zeit, sich zu beschleunigen!

Entwerfen "gut" Klassen

Ihre Klassen müssen hochkohäsiv und lose gekoppelt sein. Hier ist eine Checkliste, um schnell testen, ob eine Klasse ist gut: Ein "Nein" als Antwort auf eine der Fragen bedeutet, dass Sie Ihre Klasse überdenken müssen können.

  • Können Sie die Klasse einen Namen geben, der für sein seinen Grund erfasst?

  • Können Sie es eine Beschreibung geben, der sagt, dass es nur eine Sache tut?

  • Hat es Verantwortlichkeiten (Methoden)? Sind alle Aufgaben in Übereinstimmung mit der Beschreibung?

  • Gibt es Mitarbeiter haben?

  • Ist es - oder seine Bestandteile - halten langlebigen Zustand?

Herstellung eines Typs, der eine Unterklasse von einer vorhandenen Klasse oder eine Delegation verwenden

Sagen Sie, dass Sie einen Typ namens Tiger benötigen, und es scheint, die Aufgaben einer Tier zu teilen. Daher versucht man, zu entscheiden, ob Sie Tiger als Unterklasse einer Klasse mit dem Namen Tier zu erklären, oder vielleicht eine Membervariable vom Typ Tier deklarieren und animalisch Verantwortlichkeiten auf diese Membervariable delegieren.

Sagen Sie diese beiden Sätze laut:

  • Tiger IS-A ein Tier.

  • Tiger CAN-BE ein Tier.

Wenn der erste mehr Sinn macht (in diesem Fall, die es der Fall ist), sollte Tiger eine Unterklasse von Tier sein.

Die Erfüllung der iOS App Methoden und Plattformen

Wenn Sie eine iOS-App zu schreiben, ist es sehr wichtig, app-spezifischen Code in seinem Lebenszyklus zu verstehen und zu weben. Der Versuch, die Lifecycle-Methode, um herauszufinden, zu benutzen? Sehen Sie sich diese Liste:

  • Benutzen willFinishLaunchingWithOptions jede Verarbeitung direkt zu tun, nachdem die App startet und bevor es zeigt seine erste Fenster, und bevor es überhaupt in einem restaurierten Zustand hat.

    Normalerweise verwenden Sie diese Methode, um zu überprüfen, ob die Startparameter der App (wie zB eine URL) korrekt sind. Sie könnten auch die Umwelt prüfen, in denen die App gestartet wird (zum Beispiel hat es auf einem iPad zu starten, die die Fähigkeit zellulären Anrufe zu tätigen hat). Im Übrigen wird diese Methode nicht mit einem iOS-Version älter als iOS 6 auf einem Gerät arbeiten.

  • Benutzen didFinishLaunchingWithOptions jede Verarbeitung zu tun, nachdem Sie sicher sind, dass die App zu starten wird.

    Beispielsweise können Sie diese Methode verwenden, um einen globalen Zustand wiederherzustellen.

  • Benutzen applicationDidBecomeActive um einen Prozess neu zu starten, der angehalten wurde, während die App nicht aktiv war.

    Zum Beispiel könnten Sie starten für den Standort Änderungen zu hören oder sogar die Benutzeroberfläche mit neuen Daten aktualisieren.

  • Benutzen applicationWillResignActive pausieren Ihre Anwendung während der Benutzer seine Aufmerksamkeit auf eine andere Aktivität gibt - wie einen Anruf zu beantworten.

  • Benutzen applicationDidEnterBackground Ressourcen freizugeben und Benutzerdaten zusammen mit genügend App-Statusinformationen wiederherstellen Ihre App zu seinem aktuellen Zustand in Fall speichern Sie es später beendet wird.

    Sie sind etwa fünf Sekunden der Verarbeitung in diesem Verfahren erlaubt, so zu tun keine Aufgaben, die nicht beenden kann - wie der Benutzer aufgefordert.

  • Benutzen applicationWillEnterForeground rückgängig zu machen, was Sie getan haben in applicationDidEnterBackground.

  • Benutzen applicationWillTerminate keine abschließenden Bereinigungsaufgaben zu tun.

Making Your iOS Apps zum Verzehr geeignet

iOS Programmleistung ist mehr als Hintergrundprozesse. Ein paar einfache Tricks können Zeit und erhöhen die Leistung sparen. Für die gerade Geschichte, sehen Sie sich diese Hinweise aus.

Schnell finden und relevante Dateien in Xcode öffnen

Verwenden Sie den Schnell öffnen Befehl zu finden und eine Datei an einer bestimmten Zeile zu öffnen, mit dem Dateinamen, Typ oder ein Symbol in der Datei (wie eine Variable oder Funktionsnamen), wie folgt:

  1. Wählen Sie File- Schnell öffnen.

  2. Im Suchfeld, geben Zeichen im Namen der Datei oder Symbol, das Sie anzeigen möchten.

  3. Geben Sie einen Punkt, der durch ein oder mehrere Zeichen der Dateinamenerweiterung gefolgt.

  4. Um die Datei zu öffnen zu einer bestimmten Zeile haben, geben Sie einen Doppelpunkt durch die Zeilennummer.

  5. Wählen Sie eine Datei aus der Ergebnisliste.

In diesem Dialog können Sie auch entscheiden, wo eine Datei in Xcode zu platzieren. Drücken Sie einfach auf und halten Sie CMD + OPT + SHIFT, während Sie die Datei doppelklicken.

Konfigurieren von Verhaltensweisen

Sie können festlegen, wie Xcode auf gemeinsame Ereignisse reagiert, indem er sein Verhalten die Einstellung der Xcode-Voreinstellungen-Verhaltenseinstellungen Seite mit Verhalten Präferenzen einstellen.

Zum Beispiel können Sie eine bestimmte Gruppe von Tabs haben angezeigt, wenn Xcode Ihre Anwendung läuft. Oder, wenn ein Build fehlschlägt, können Sie Xcode machen einen Schnappschuss speichern und öffnen Sie das Debug-Bereich in Ihrem Arbeitsplatz-Fenster.

Erstellen einer Datei .gitignore

Xcode kann mit git, ein beliebtes Quellcodeverwaltungssystem leicht verbinden. Wenn ohne Konfiguration verwendet, git werden versuchen, alles in einem Projekt zu archivieren, auch Dateien mit kompilierten Objektcode, ausführbaren Dateien und temporäre von Xcode verwendeten Dateien.

Um dieses Problem zu beheben, müssen Sie configure git in geeigneter Weise zu erstellen. Dazu navigieren ein in den Projektordner und erstellen .gitignore -Datei mit folgendem Inhalt:

OS X Finder.DS_Store # Xcode pro Benutzer Config * .mode1 * .mode1v3 * .mode2v3 * .perspective * .perspectivev3 * .pbxuser * .xcworkspacexcuserdata # Bauen productsbuild / *. O * .LinkFileList * .hmap # Automatische Backup-Dateien * ~ .nib / *. swp * ~ 

Popping eine Alert-Ansicht oben

Ihre Anwendung muss oft eine Benachrichtigung an Pop-up lassen den Benutzer wissen, was passiert ist, und dass sie eine Auswahl von Aktionen hat. Hier ist eine kurze Checkliste, wie eine Benachrichtigung einzurichten.

  1. Implementieren Sie die clickedButtonAtIndex Methode in der Klasse, die die Warnung zu Pop-up verursachen.

    Der folgende Beispielcode zeigt Ihnen, wie:

    - (Void) Alertview: (UIAlertView *) Alertview clickedButtonAtIndex: (NSInteger) buttonIndex {if (buttonIndex == 0) {[self playNewGame] -} else if (buttonIndex == 1) {Rücklauf-}}
  2. Erstellen, zu initialisieren, und die Warnung angezeigt.

    Das folgende Code-Snippet zeigt Ihnen, wie:

UIAlertView * alert = [[UIAlertView alloc] init] - [Alarm setTitle: @ "Game Over!"] - [Alarm setMessage: @ "? Another Game Play"] - [Alarm addButtonWithTitle: @ "Yes"] - [Alarm addButtonWithTitle : @ "Nein"] - [Alarm setDelegate: self] - [Alarm show] -

Anschließen des iOS Apps

Ihr iOS-Anwendung muss möglicherweise mit einer Vielzahl von anderen Ressourcen zu kommunizieren. Glücklicherweise hat die iOS-Toolbox eine Vielzahl von spezialisierten Verbindungen. Heben Sie ein und setzen sie zu arbeiten.

Das Öffnen eines Browser von Ihrer App

Hier ist eine schnelle und schmutzige Art und Weise Ihre Anwendung von mit einer Web-Seite in einem Browser öffnen. Siehe das folgende Beispiel-Code:

- (IBAction) helpViaBrowser: (id) sender {[[UIApplication shared] openURL: [NSURL URLWithString: @ "https://en.wikipedia.org/wiki/Tictactoe"]] -

Ja, es ist so einfach!

Konvertieren einer Adresse zu einem Geolocation

Die meisten Mapping oder ortsbasierte Anwendungen haben einen Bedarf eine Textzeichenfolge enthält eine Adresse oder einen Ort zu konvertieren Koordinaten geocodiert. Zum Glück ist die iOS-Framework bietet eine eingebaute in Geocoder. Der folgende Code zeigt, wie Sie den Geocoder verwenden:

# 133-NSString * findstring = [findTextField text] - // die Zeichenfolge aus einem Textfeld gelesen wird [myGeocoder geocodeAddressString: findstring completionHandler: ^ (NSArray * Ortsmarken, NSError * error) {MKPlacemark * aPlacemark = [placemarks objectAtIndex: 0] - // aPlacemark enthält die geocodiert Informationen # 133 -}] - # 133-

Die Prüfung auf Netzwerkfunktionen

Es ist eine gute Idee zu testen, was Netzwerk-Fähigkeiten zur Verfügung stehen, bevor Ihre Anwendung auf das Netzwerk zu nutzen versucht. Hier ist, wie Sie diesen Test machen können:

+ (Void) listCapabilities {// Testing für die networkNSString * network = nil-Erreichbarkeits * reachFacade = [Erreichbarkeits reachabilityForInternetConnection] -NetworkStatus status = [reachFacade currentReachabilityStatus] -Wenn (Status == NotReachable) network = @ "Kein Netzwerk n" - wenn sonst (Status == ReachableViaWiFi) network = @ "Wifi verfügbar n" -else if (Status == ReachableViaWWAN) network = @ "WAN verfügbar n" - # 133- [textVal appendString: network] - # 133-}

Ab Sensoren

Bevor Sie erfassten Werte lesen können, müssen Sie den Motion Manager starten und zu konfigurieren. Der folgende Code zeigt Ihnen, wie:

# 133 - // Stellen Sie die Bewegung managerself-> Motionmanager = [[CMMotionManager alloc] init] -self-> motionManager.accelerometerUpdateInterval = 1-Selbst> motionManager.gyroUpdateInterval = 1-Selbst> Motionmanager. magnetometerUpdateInterval = 1- # 133-

Allerdings nur, um die Bewegung Manager beginnt, ist nicht genug. Sie müssen auch starten, um die Sensoren überwacht wird, wie hier gezeigt:

- (IBAction) startMonitoringSensors:(id)sender{[self->motionManagerstartAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler: ^ (CMAccelerometerData * accelerometerData, NSError * error) {[self handleAccelerationUpdates:accelerometerData.acceleration]-}]-[self->motionManagerstartGyroUpdatesToQueue:[NSOperationQueue currentQueue] withHandler: ^ (CMGyroData * gyroscopeData, NSError * error) {[self handleGyroUpdates:gyroscopeData.rotationRate]-}]-[self->motionManagerstartMagnetometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler: ^ (CMMagnetometerData * magnetometerData, NSError * error) {[self handleMagnetometerUpdates: magnetometerData. Magnetfeld]-}]-}

Menü