10 nützliche Tipps und Snippets für Apple iPhone und Xcode

Donnerstag, 12. November 2009

1. Strings auf mehrere Zeilen

In Xcode können Sie "Pause" ein String über mehrere Zeilen, indem Sie am Ende einen umgekehrten Schrägstrich. Diese Funktion kann nützlich sein, wenn, zum Beispiel, wir wollen HTML-Text in ein Steuerelement einfügen UIWebView

Objective-C:
  1. htmlData = @ " \ NSString * htmlData = @ "\
  2. <html> <head> \
  3. <style type= \" text/css \"> \
  4. Körper (background: # 000; color: # fff) \
  5. </ Style> \
  6. <title> Report </ title> </ head> \
  7. <body> \
  8. <h1> HTML Test </ h1> \
  9. <ul> \
  10. <li> Text HTML </ li> \
  11. Geschrieben am <li> </ li> \
  12. <li> mehr "Zeilen </ li> \
  13. </ Ul> </ body> </ html> ";
  14. htmlData baseURL : [ NSURL URLWithString : @ "http://www.saidmade.com/" ] ] ; [WebView loadHTMLString: htmlData baseURL: [NSURL URLWithString: @ "http://www.saidmade.com/"]];

2. Transitions Profil mit Wirkung "gefaltetes Papier"

Hier ist eine nützliche Funktion zum Durchsuchen und risflogliare zwei UIView

Objective-C:
  1. / / Führen Sie einen Übergangseffekt aus einer CURL UIView ein UIView
  2. / / @ Params Platzhalter (UIView) main
  3. / / @ Params fview (UIView) Preis
  4. / / @ Params TView (UIView) Ankunft
  5. / / @ Params vor (BOOL) Zug nach oben oder unten
  6. ) makeTansitionFromView : ( UIWindow * ) placeholder fromView : ( UIView * ) fview toView : ( UIView * ) tview forward : ( BOOL ) forward { - (Void) makeTansitionFromView: (UIWindow *) Platzhalter fromView: (UIView *) fview toView: (UIView *) TView vorn: (BOOL) vor (
  7. nil context : NULL ] ; [UIView beginAnimations: nil context: NULL];
  8. 1.5 ] ; [UIView setAnimationDuration: 1,5];
  9. forward?UIViewAnimationTransitionCurlUp : UIViewAnimationTransitionCurlDown forView : placeholder cache : YES ] ; [UIView setAnimationTransition: vorwärts? UIViewAnimationTransitionCurlUp: UIViewAnimationTransitionCurlDown forView: Platzhalter cache: YES];
  10. ; [TView removeFromSuperview];
  11. fview ] ; [Platzhalter addSubview: fview];
  12. ; [Fview removeFromSuperview];
  13. tview ] ; [Platzhalter addSubview: TView];
  14. ; [UIView commitAnimations];
  15. )

Kann auf diese Weise verwendet werden:

Objective-C:
  1. / / Display - Leute Forward
  2. window fromView : primaView.view toView : secondaView.view forward : YES ] ; [Self makeTansitionFromView: Fenster fromView: primaView.view toView: secondaView.view uns: JA];
  3. / / Hide - rückwärts
  4. window fromView : secondaView.view toView : primaView.view forward : NO ] ; [Self makeTansitionFromView: Fenster fromView: secondaView.view toView: primaView.view vorn: NO];

3. Verhindern Auto-Dimm-Display

Um mit Vorsicht verwendet werden, unter Androhung der sofortigen Verbrauch der Batterie ermöglicht diese Codezeile, die Sie dafür, dass unsere Anwendung immer sichtbar, verhindert das Apple iPhone geht in "Stand-by":

Objective-C:
  1. .idleTimerDisabled = YES ; [UIApplication sharedApplication]. IdleTimerDisabled = YES;

4. Network Activity Indicator

Die Animation, die auf der Statusleiste wird am oberen Rand des Bildschirms des Apple iPhone, kann auch in unserer Anwendung genutzt werden, um Netzwerk-Aktivität hervorzuheben:

Objective-C:
  1. / / Show Network Activity Indicator ...
  2. .networkActivityIndicatorVisible = YES ; [UIApplication sharedApplication]. NetworkActivityIndicatorVisible = YES;
  3. / / Your Operationen ...
  4. / / Hide Network Activity Indicator ...
  5. .networkActivityIndicatorVisible = NO ; [UIApplication sharedApplication]. NetworkActivityIndicatorVisible = NO;

5. Personal Activity Indicator

Wenn Sie nicht in der Statusleiste haben, kann nützlich sein, um zu zeigen, unsere Activity Indicator:

Objective-C:
  1. / / Global irgendwo an ... dipo ein Delegierter (. h)
  2. UIActivityIndicatorView * Tätigkeit;
  3. / / In loadView oder viewDidLoad Initialisierung des Activity Indicator
  4. initWithActivityIndicatorStyle : UIActivityIndicatorViewStyleWhite ] ; Aktivität = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhite];
  5. activity ] ; [Self.view addSubview: Aktivität];
  6. CGPointMake ( 160, 240 ) ] ; [Activity setCenter: CGPointMake (160, 240)];
  7. ; [StopAnimating Tätigkeit];
  8. / / Wenn wir brauchen
  9. ) someMethod { - (Void) (someMethod
  10. ; [StartAnimating Tätigkeit];
  11. / / Bis zu tun ...
  12. ; [StopAnimating Tätigkeit];
  13. )

6. Standort

Mit diesem Snippet kann man verstehen, "Sprache", und setzen unser Gerät:

Objective-C:
  1. / / Frei von Sprache und Lokalisierung
  2. defaults = [ NSUserDefaults standardUserDefaults ] ; NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
  3. languages = [ defaults objectForKey : @ "AppleLanguages" ] ; NSArray * Sprachen = [defaults objectForKey: @ "AppleLanguages"];
  4. currentLanguage = [ languages objectAtIndex : 0 ] ; NSString currentLanguage * = [Sprachen objectAtIndex: 0];
  5. , [ [ NSLocale currentLocale ] localeIdentifier ] ) ; NSLog (@ "Current Locale:% @", [[NSLocale currentLocale] LocaleIdentifier]);
  6. , currentLanguage ) ; NSLog (@ "Aktuelle Sprache:% @", currentLanguage);

7. iPhone oder iPod?

Diese Klasse ist sinnvoll, um festzustellen, welches Gerät Apple arbeitet an unserer Applikation. Wir können nicht nur das Modell zu bestimmen (iPhone oder iPod Touch), sondern auch die Version. Erstellen Sie zwei Dateien UIDevice-hardware.h und UIDevice-hardware.m

Objective-C:
  1. / / UIDevice-hardware.h
  2. # Import <UIKit/UIKit.h>
  3. # Define IPHONE_1G_NAMESTRING @ "iPhone 1G"
  4. # Define IPHONE_3G_NAMESTRING @ "iPhone 3G"
  5. # Define IPHONE_3GS_NAMESTRING @ "iPhone 3GS"
  6. # Define IPOD_1G_NAMESTRING @ "iPod touch 1G"
  7. # Define IPOD_2G_NAMESTRING @ "iPod touch 2G"
  8. Hardware ) @ UIDevice Schnittstelle (Hardware)
  9. * ) platform; - (NSString *)-Plattform;
  10. * ) platformString; - (NSString *) platformString;
  11. @ End

Objective-C:
  1. / / UIDevice-hardware.m
  2. # Import "UIDevice-hardware.h"
  3. # Include <sys/types.h>
  4. # Include <sys/sysctl.h>
  5. Hardware ) @ Umsetzung UIDevice (Hardware)
  6. / *
  7. Plattformen
  8. iPhone1, 1 = iPhone 1G
  9. iPhone1, 2 = iPhone 3G
  10. iPhone2, 1 = iPhone 3GS
  11. iPod1, 1 = iPod touch 1G
  12. iPod2, 1 = iPod touch 2G
  13. * /
  14. * ) platform { - (NSString *) Plattform (
  15. size_t size;
  16. , NULL , & size, NULL , 0 ) ; sysctlbyname (hw.machine ", NULL, & size, NULL, 0);
  17. machine = malloc ( size ) ; char * Maschine = malloc (size);
  18. , machine, & size, NULL , 0 ) ; ysctlbyname (hw.machine ", Maschinen-, & size, NULL, 0);
  19. platform = [ NSString stringWithCString : machine ] ; NSString Plattform * = [NSString stringWithCString: machine];
  20. machine ) ; kostenlos (Maschine);
  21. return-Plattform;
  22. )
  23. * ) platformString { - (NSString *) (platformString
  24. platform = [ self platform ] ; NSString Plattform * = [self-Plattform];
  25. platform isEqualToString : @ "iPhone1,1" ] ) return IPHONE_1G_NAMESTRING; if ([Plattform isEqualToString: @ "iPhone1, 1"]) return IPHONE_1G_NAMESTRING;
  26. platform isEqualToString : @ "iPhone1,2" ] ) return IPHONE_3G_NAMESTRING; if ([Plattform isEqualToString: @ "iPhone1, 2"]) return IPHONE_3G_NAMESTRING;
  27. platform isEqualToString : @ "iPhone2,1" ] ) return IPHONE_3GS_NAMESTRING; if ([Plattform isEqualToString: @ "iPhone2, 1"]) return IPHONE_3GS_NAMESTRING;
  28. platform isEqualToString : @ "iPod1,1" ] ) return IPOD_1G_NAMESTRING; if ([Plattform isEqualToString: @ "iPod1, 1"]) return IPOD_1G_NAMESTRING;
  29. platform isEqualToString : @ "iPod2,1" ] ) return IPOD_2G_NAMESTRING; if ([Plattform isEqualToString: @ "iPod2, 1"]) return IPOD_2G_NAMESTRING;
  30. return NULL;
  31. )
  32. @ End

In unserem Delegierten treten kann:

Objective-C:
  1. # Import "UIDevice-hardware.h"
  2. / /
  3. ) checkDeviceTypeAndCapabilities { - (Void) (checkDeviceTypeAndCapabilities
  4. , [ [ UIDevice currentDevice ] platform ] ) ; NSLog (@ "Typ:% @", [[UIDevice currentDevice] Plattform]);
  5. , [ [ UIDevice currentDevice ] platformString ] ) ; NSLog (@ "Typ:% @", [[UIDevice currentDevice] platformString]);
  6. )

8. Raum

Wenn Sie eine Anwendung, die Zugriff auf die Funktionen der Kammer verwendet zu schreiben, ist gut zu überprüfen, ob die "device" solche Merkmale (z. B. Richtlinien von Apple) unterstützt:

Objective-C:
  1. UIImagePickerController * imgPicker;
  2. / / ...
  3. UIImagePickerController isSourceTypeAvailable : UIImagePickerControllerSourceTypeCamera ] ) ) { if (([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])) (
  4. self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
  5. self.imgPicker animated : YES ] ; [Self presentModalViewController: self.imgPicker animiert: YES];
  6. )

9. Fotoalbum & Photo Library

Ähnlich wie, was passiert mit der Kammer, sollte es machen nur die Kontrollen, auch wenn Sie Zugriff auf die Bibliothek der Bilder:

Objective-C:
  1. UIImagePickerController * imgPicker;
  2. / / ...
  3. UIImagePickerController isSourceTypeAvailable : UIImagePickerControllerSourceTypeSavedPhotosAlbum ] ) ) { if (([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum])) (
  4. self.imgPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
  5. self.imgPicker animated : YES ] ; [Self presentModalViewController: self.imgPicker animiert: YES];
  6. )
  7. / / Oder ...
  8. UIImagePickerController isSourceTypeAvailable : UIImagePickerControllerSourceTypePhotoLibrary ] ) ) { if (([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])) (
  9. self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
  10. self.imgPicker animated : YES ] ; [Self presentModalViewController: self.imgPicker animiert: YES];
  11. )

10. Verfügbarkeit und der Art des Netzes

Glücklicherweise schrieb Apple eine Klasse für uns, um den Status des Netzwerks zu bestimmen. Dies kann in unserer Anwendung verwendet werden, um die Präsenz ihrer Netzwerk-Topologie: Ethernet oder WiFi zu überprüfen. Download Reachability.h und Reachability.m. Fügen Sie das Framework SystemConfiguration.framework Jetzt können Sie eine Funktion schreiben wie folgt aus:

Objective-C:
  1. / / In deiner Delegierter. H
  2. @ Class Erreichbarkeit;
  3. / /
  4. / / In den Delegierten. M
  5. # Import "Reachability.h"
  6. / / Stellen Sie sicher, Netzabdeckung
  7. ) CheckNetworkStatus { - (BOOL) (CheckNetworkStatus
  8. Reachability reachabilityForInternetConnection ] retain ] != NotReachable ) ; return ([[Erreichbarkeit reachabilityForInternetConnection] behalten]! = NotReachable);
  9. )

Beachten Sie, dass der Code von Apple, dessen volle Quelle, die in Reachability.zip zur Verfügung, ist für die SDK 3.1.2. Wenn Sie versuchen, für SDK 2.2.1 Sie brauchen, um auf bestimmte Teile des Codes, die nicht von den "alten" (auch wenn noch vorhanden) SDK, wie definieren unterstützt Kommentar ein:

Objective-C:
  1. kSCNetworkReachabilityFlagsConnectionOnTraffic
  2. kSCNetworkReachabilityFlagsConnectionOnDemand

und der Teil des Codes (Kommentare):

Objective-C:
  1. / / If ((((Flags & kSCNetworkReachabilityFlagsConnectionOnDemand)! = 0) | |
  2. / / (Flags & kSCNetworkReachabilityFlagsConnectionOnTraffic)! = 0))
  3. / / (
  4. / / / / ... und die Verbindung ist auf Nachfrage-(oder-Verkehr), wenn die
  5. / / / / Der Aufruf Anwendung ist die Verwendung der APIs oder höher CFSocketStream
  6. / /
  7. / / If ((flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0)
  8. / / (
  9. / / / / ... und keine [user] Intervention ist erforderlich
  10. / / RetVal = ReachableViaWiFi;
  11. / /)
  12. / /)

Verwandte Post

War dieser Artikel hilfreich?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Loading ...

Es gibt keine Kommentare für diesen Beitrag

Leave a comment

TAG XHTML Berechtigungen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre>         // blocco generico [code][/code]       // blocco generico [as][/as]           // Actionscript [css][/css]         // CSS Style Sheet [html][/html]       // HTML [js][/js]           // Javascript [objc][/objc]       // Objective-C [php][/php]         // PHP [sql][/sql]         // SQL