Wie viele Programmierer zu bedienen, baue ich auch meine eigene Bibliothek von Funktionen bereit, in mehreren Projekten und mehreren Kontexten wiederverwendet werden. Lassen Sie mich übergeben den Titel von diesem Post, vielleicht ein bisschen "riskant, aber dennoch, wie wir sehen werden, nicht weit von der Realität.
In Objective-C-Code aufrufen können und schreiben C / C + +, einschließlich der Montage für diese Angelegenheit. Diese Eigenschaft macht es ein sehr vielseitiges und Sprache, in mancher Hinsicht phänomenal. Auf der einen Seite, verwenden Sie können und schätzen die rein Objective-C-Syntax, kann der andere schnell laufen Portierung von Code in ANSI C geschrieben (vielleicht für Digital Unix oder so) und kann bequem in unsere iPhone und iPad-Anwendungen zu passen; ganz zu schweigen von all den BSD-Kernel ist bereits auf Mac OS X!
Mehr ...
Gibt den Namen einer Datei aus dem Objekt NSURLRequest und erlaubt Ihnen, ob eine Verlängerung entscheiden:
Mehr ...
NSString ist eine sehr mächtige Klasse, lassen Sie mich Ihnen einige der am häufigsten verwendeten Eigenschaften:
printf ()
1 2
| / / Printf () output = [ NSString stringWithFormat : @ "%@ / %@" , @ "primo" , @ "secondo" ] ; NSString * output = [ NSString stringWithFormat: @ "% @ /% @", @ "ersten", @ "zweiten"]; |
Führen Sie die split ()
1 2 3
| / / Split () / explode () list = @ "Norman, Stanley, Fletcher" ; NSString * list = @ "Norman Stanley Fletcher"; listItems = [ list componentsSeparatedByString : @ ", " ] ; NSArray * ListItems = [Liste componentsSeparatedByString: @ ""]; |
Konvertieren von String an Wert
1 2 3
| / / Konvertieren doubleString = @ "123" ; NSString * doubleString @ = "123"; [ doubleString doubleValue ] ; double-Wert = [doubleString doubleValue]; |
Innerhalb eines Strings
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| / / Substring searchString = @ "age" ; NSString * searchString = @ "Alter"; beginsTest = @ "Agencies" ; NSString * beginsTest @ = "Agenturen"; [ beginsTest rangeOfString : searchString NSRange prefixRange = [beginsTest rangeOfString: searchString NSAnchoredSearch | NSCaseInsensitiveSearch ) ] ; Optionen: (NSAnchoredSearch | NSCaseInsensitiveSearch)]; / / PrefixRange = {0, 3} endsTest = @ "BRICOLAGE" ; NSString * endsTest = @ "DIY"; [ endsTest rangeOfString : searchString NSRange suffixRange = [endsTest rangeOfString: searchString NSAnchoredSearch | NSCaseInsensitiveSearch | NSBackwardsSearch ) ] ; Optionen: (NSAnchoredSearch | NSCaseInsensitiveSearch | NSBackwardsSearch)]; / / SuffixRange = {6, 3} |
Mehr ...
Die MapKit Framework bietet viele nützliche Funktionen, mit Ausnahme der Rückkehr der Breite und Länge von einer Adresse. In JavaScript, zum Beispiel, können Sie den Service von Google Geocoding zur Verfügung gestellt und diskutiert in Google Maps: Wie man Breite und Länge von einer Adresse zu bekommen . Auf dem Apple iPhone oder iPad, können Sie jedoch das Hindernis durch Verwendung eines anderen Google-Services zu überwinden. Insbesondere können Sie direkt rufen Sie die URL:
1
| http://maps.google.com/maps/geo?q = [Adresse] & output = csv |
Wo ist [indirizzo] , um den String mit der Adresse, die Sie umwandeln möchten Koordinaten eingeben. Der Ausgang zurückgekehrt ist vom Typ:
1
| 200,8,41.9128300,12.2241172 |
). Der erste Wert, 200 , zeigt an, dass alles gut gegangen ist ( 200 OK ). Die zweite, 8 , ist das Google-Parameter Genauigkeit (1-10). Die letzten beiden Werte sind, endlich, Breiten-und Längengrad. Jetzt sehen wir, ein Prototyp für ein Verfahren in unseren Anwendungen einbezogen werden können:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CLLocationCoordinate2D ) getLocationFromAddress : ( NSString * ) address { - (CLLocationCoordinate2D) getLocationFromAddress: ( NSString *) Adresse { urlString = [ NSString stringWithFormat : @ "http://maps.google.com/maps/geo?q=%@&output=csv" , NSString * urlString = [ NSString stringWithFormat: @ "% @ http://maps.google.com/maps/geo?q = & output = csv" NSUTF8StringEncoding ] ] ; [Adresse stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; listItems = [ locationString componentsSeparatedByString : @ "," ] ; NSArray * ListItems = [locationString componentsSeparatedByString: @ ""]; / / Int zoom = 0; 0.0 ; doppelte Breite = 0,0; 0.0 ; doppelte Länge = 0,0; listItems count ] > = 4 && [ [ listItems objectAtIndex : 0 ] isEqualToString : @ "200" ] ) { if ([ListItems count]> = 4 && [[ListItems objectAtIndex: 0] isEqualToString: @ "200"]) { / / Zoom = [[ListItems objectAtIndex: 1] intValue]; listItems objectAtIndex : 2 ] doubleValue ] ; Breitengrad = [[ListItems objectAtIndex: 2] doubleValue]; listItems objectAtIndex : 3 ] doubleValue ] ; Länge = [[ListItems objectAtIndex: 3] doubleValue]; { Else {} / / Fehler } CLLocationCoordinate2D Standort; location.latitude = Breite; location.longitude = Länge; Standort zurückkehren; } |
Notes of Interest
, alla stregua della funzione explode ( ) del PHP per intenderci. Die Zeichenfolge in zurückgekehrt locationString wird "gesplittet" nach der Methode componentsSeparatedByString , wie die Funktion explode ( ) von PHP zum Beispiel. Im Beispiel habe ich vorgeschlagen, trat ich - aber kommentiert - den Code, um auch die Google-Parameter Genauigkeit, Präzision oder Skalierungsfaktor, mit bezeichnet abrufen zoom .
Quelle als
Der Vollständigkeit halber, habe ich eine gemacht kleine Beispiel-Anwendung , mit der Sie die Methode oben vorgeschlagenen versuchen können, geben Sie eine beliebige Adresse und das iPhone wird auf der Karte anzuzeigen.


Quellcode
Ich danke dem Team devapp für die Inspiration dieses Artikels.
Mehr ...
Neueste Kommentare
kOoLiNuS : @ Giovambattista Fazioli: danke! mehr als bereit!
Giovambattista Fazioli : @ kOoLiNuS: Ruhig, können Sie wahrscheinlich davon aus, dass WPX Cleanfix wird frei sein, und ...
kOoLiNuS : @ kOoLiNuS: eine fehlende
und 
kOoLiNuS : @ Giovambattista Fazioli: ich abonniert, aber wenn ich mein Hobby war die Nutzung der Plattform ...
Giovambattista Fazioli : @ kOoLiNuS: Ja, das ist ein bekanntes Problem. Tritt auf, wenn die Tabellen in Frage stehen ...