Catégorie «D»


NSURLConnection: Exemple d'utilisation

NSURLConnection permet de contrôler à partir d'une connexion à un serveur distant. Pour l'utiliser il suffit de:

1
2
3
4
5
6
7
8
9
10
11
/ / Les objets suffisant pour effectuer une NSURLConnection
urlConnection; NSURLConnection * URLConnection;
mutableData; NSMutableData mutableData *;

/ / ...

urlString = @ "http://www.miodominio.com/documento.txt" ; NSString * urlString @ = "http://www.miodominio.com/documento.txt";

urlRequest = [ NSURLRequest requestWithURL : [ NSURL URLWithString : urlString ] ] ; NSURLRequest URLRequest = * [ NSURLRequest requestWithURL: [ NSURL URLWithString: urlString]];
/ / Le délégué sera de répondre aux états de la connexion
NSURLConnection alloc ] initWithRequest : urlRequest delegate : self ] ; URLConnection = [[ NSURLConnection alloc] initWithRequest: délégué URLRequest: self];

Voici les méthodes délégué à vérifier l'état de la connexion:

[Cc_objc]

Suite ...

Très court extrait: Objective-C NSString Selector

Objective-C est un langage merveilleux qui vous permet de faire des choses étonnantes. Un des aspects les plus intéressants est son invocation dynamique des méthodes (des messages). Vous pouvez, en fait, obtenir l'adresse d'un message d'une chaîne.

Suite ...

Très court extrait: UIWebView, et afficher les fichiers PDF dans

L'objet UIWebView peut être utilisé pour afficher plusieurs fichiers. Par exemple vous pouvez l'utiliser pour afficher - ainsi que des films QuickTime ou YouTube - fichier PDF ou HTML inclus dans notre code.

Suite ...

NSString

NSString est une classe puissante, laissez-moi vous montrer quelques-unes des propriétés les plus utilisées:

printf ()

1
2
/ / Printf ()
output = [ NSString stringWithFormat : @ "%@ / %@" , @ "primo" , @ "secondo" ] ; NSString * Sortie = [ NSString stringWithFormat: @ "% @ /% @", @ "première", @ "deuxième"];

Exécutez le split ()

1
2
3
/ / Split () / explode ()
list = @ "Norman, Stanley, Fletcher" ; NSString * list = @ "Norman Stanley Fletcher";
listItems = [ list componentsSeparatedByString : @ ", " ] ; NSArray * ListItems = [liste componentsSeparatedByString: @ ""];

Convertir de chaîne en valeur

1
2
3
/ / Conversion
doubleString = @ "123" ; NSString * @ doubleString = "123";
[ doubleString doubleValue ] ; double valeur = [doubleString doubleValue];

Au sein d'une chaîne de

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/ / Sous-chaîne
searchString = @ "age" ; NSString * @ searchString = «âge»;

beginsTest = @ "Agencies" ; NSString * beginsTest @ = "Agences";
[ beginsTest rangeOfString : searchString NSRange prefixRange = [beginsTest rangeOfString: searchString
NSAnchoredSearch | NSCaseInsensitiveSearch ) ] ; options: (NSAnchoredSearch | NSCaseInsensitiveSearch)];

/ / PrefixRange = {0, 3}

endsTest = @ "BRICOLAGE" ; NSString * endsTest = @ "bricolage";
[ endsTest rangeOfString : searchString NSRange suffixRange = [endsTest rangeOfString: searchString
NSAnchoredSearch | NSCaseInsensitiveSearch | NSBackwardsSearch ) ] ; options: (NSAnchoredSearch | NSCaseInsensitiveSearch | NSBackwardsSearch)];

/ / SuffixRange = {6, 3}

Suite ...

Très court extrait: composition de courrier dans une application iPhone, iPod ou iPad

Pour composer la poste dans une application iPhone / iPod, il suffit d'ajouter le cadre MessageUI . Dans notre contrôleur d'entrer à l'inclusion du cadre et d'adopter le Protocolo MFMailComposeViewControllerDelegate :

Suite ...

Objective-C et de méthodes de classe alloc auto

davanti al prototipo, tipo: Lorsque vous définissez et utiliser des méthodes (des messages) sous Objective-C, nous sommes souvent confrontés avec la syntaxe curieuse qui montre un signe - ou + à l'avant du prototype, tapez:

1
2
3
4
5
6
7
/ / Dans la définition
void ) mioMessaggio; - (Void) mioMessaggio;

/ / De même, dans la mise en œuvre
void ) mioMessaggio { - (Void) {mioMessaggio
/ / ...
}

Ou encore:

1
2
3
4
5
6
7
/ / Dans la définition
void ) mioMessaggio; + (Void) mioMessaggio;

/ / De même, dans la mise en œuvre
void ) mioMessaggio { + (Void) {mioMessaggio
/ / ...
}

La différence est que les méthodes définies par le symbole - sont les méthodes d'instance, alors lié à un objet. Les méthodes définies par le symbole + sont appelées méthodes de classe, car ils peuvent être effectuées sans allouer et d'instancier l'objet en question.

sono due classi, molto usate, che contengono svariati metodi di classe. NSString ou UIView ya deux classes, largement utilisé, qui contiennent plusieurs méthodes de classe. Les méthodes de classe sont utilisés en permanence, comme lorsque nous initialiser ou affecter tout objet:

1
[ UIView alloc ] ; MyView UIView * = [UIView alloc];

La méthode alloc est un exemple classique, présente dans tous les objets et, comme il est évident à partir du code, une méthode de classe est invoqué comme avant affectation de l'objet lui-même.

Les méthodes de classe peuvent être utiles dans de nombreux cas, surtout lorsque nous créons notre objet et nous voulons allouer et l'initialiser en moins de lignes de code que possible. Imaginez avoir à recueillir un certain nombre dans un tableau d'objets définis par nous. Nous définissons notre objet, tout d'abord, l'écriture du code de la manière la plus simple, sans utiliser les méthodes de classe:

1
2
3
4
5
6
7
8
9
10
/ / Définit l'interface de myObject.h
# Import <Foundation/Foundation.h>

NSObject { @ Interface myObject: NSObject {
name; NSString * name;
lastname; NSString * nom;
}

nonatomic, retain ) NSString * name; @ Property (nonatomic, retenir) NSString * name;
nonatomic, retain ) NSString * lastname; @ Property (nonatomic, retenir) NSString * nom;

La mise en œuvre, dans le cas le plus simple, rien ne pouvait être soit:

1
2
3
4
5
6
7
8
9
10
11
12
/ / MyObject.m

# Import "myObject.h"
@ Mise en oeuvre monObjet

Synthétiser le nom @ lastname;

void ) dealloc { - (Void) dealloc {
; [Communiqué] Le nom;
; [Communiqué de LastName];
; [Super dealloc];
}

Lorsque nous arriverons à utiliser notre objet, nous allons utiliser un code comme ceci:

1
2
3
[ myObject alloc ] ; monObjet * obj = [myObject alloc];
"Mario" ; obj.name @ = "John";
"Rossi" ; obj.lastname @ = "Smith";

Si nous voulions créer de nombreux objets de ce type, et les placer dans une NSArray , la situation devient un peu gênant:

1
2
3
4
5
6
7
8
9
10
11
12
[ myObject alloc ] ; objA * monObjet = [myObject alloc];
"Mario" ; objA.name @ = "John";
"Rossi" ; objA.lastname @ = "Smith";

[ myObject alloc ] ; objB * monObjet = [myObject alloc];
"Carlo" ; objB.name @ = "Charles";
"Bianchi" ; objB.lastname @ = "Smith";

elenco = [ NSArray arrayWithObjects : objA, objB, nil ] ; NSArray * liste = [ NSArray arrayWithObjects: objA, objB, nil];

; [ObjA release];
; [ObjB release];

per aggiungere man mano gli oggetti nel nostro elenco. Vous pouvez améliorer le code en créant une boucle for une ou de l'utilisation NSMutableArray ajouter des objets dans notre annuaire. . Toutefois, la situation des migliorebbe peu, quand ils restent en dehors de la propriété des paramètres du name et lastname . Serait alors spontanément, pour commencer, ajoutez une méthode - objet - initWithName qui vous permettra de sauter à des paramètres de propriété, ce qui simplifie les choses un peu. Dans le fichier de mise en œuvre myObject.m ajouter:

1
2
3
4
5
6
7
id ) initWithName : ( NSString * ) stringName lastname : ( NSString * ) stringLastname { - (Id) initWithName: ( NSString *) lastname StringName: ( NSString *) {stringLastname
self = [ super init ] ) { if (self = [super init]) {
self.name = StringName;
self.lastname = stringLastname;
}
le retour de soi;
}

En faisant cela, nous avons amélioré la situation, ils peuvent maintenant écrire:

1
2
3
4
5
6
7
[ [ myObject alloc ] initWithName : @ "Mario" lastname : @ "Rossi" ] ; objA * monObjet = [[monObjet alloc] initWithName: @ "John" lastname: @ "Smith"];
[ [ myObject alloc ] initWithName : @ "Carlo" lastname : @ "Bianchi" ] ; objB * monObjet = [[monObjet alloc] initWithName: @ "Charles" lastname: @ "Smith"];

elenco = [ NSArray arrayWithObjects : objA, objB, nil ] ; NSArray * liste = [ NSArray arrayWithObjects: objA, objB, nil];

; [ObjA release];
; [ObjB release];

, necessari per l'inserimento nell'array e liberare la memoria. Pourtant, encore pointeurs objA et objB , nécessaires à l'entrée dans le tableau et la mémoire libre. Souhaitant que nous pourrions être entrés directement dans la création d'un objet peuplant la matrice, en utilisant autorelease pour libérer de la mémoire, mais le code ne serait toujours pas ralenti. Permettez-moi de démontrer comment résoudre le problème avec une méthode de classe. Tout d'abord nous remplaçons - (id)initWidthName avec:

1
2
3
4
5
6
7
8
9
10
id ) initWithName : ( NSString * ) name lastname : ( NSString * ) lastname { + (Id) initWithName: ( NSString *) Prénom Nom: ( NSString *) {lastname
* monObjet article;

item = [ [ self alloc ] init ] ) { if (item = [[alloc auto] init]) {
/ / Initialisation
item.name = nom;
item.lastname = lastname;
}
item autorelease ] ; retour [élément autorelease];
}

En agissant ainsi nous avons créé une méthode de classe qui alloue (dans autorelase) et celle réellement initiée de notre objet, vous devez d'abord le pointeur vers l'instance. Le code utilisé est alors:

1
2
3
4
elenco = [ NSArray arrayWithObjects : NSArray * liste = [ NSArray arrayWithObjects:
@ "Mario" lastname : @ "Rossi" ] , [InitWithName MyObject: @ "John" lastname: @ "Smith"],
@ "Carlo" lastname : @ "Bianchi" ] , [InitWithName MyObject: @ "Charles" lastname: @ "Smith"],
; nil];

Beaucoup, beaucoup mieux ...

Suite ...

iPad: écrans de démarrage gérer

Apple iPhone et iPod ont été utilisées pour gérer un seul fichier image à charger l'application, le fichier Default.png . Apple iPad, cependant, l'orientation de gestion différentes nécessite l'utilisation de plusieurs fichiers image, pour être sûr que vous voyez l'écran de démarrage correctement fondé sur l'orientation de l'appareil. Durant démarrage de l'application, comme ce fut le cas pour l'iPhone, il n'est pas possible d'intervenir pour le code pour "étonnant" que l'appareil orienté. Heureusement, il a été introduit dans le chargement automatique des fichiers spéciaux en fonction de l'orientation:

Les fichiers sont actuellement pris en charge, en plus de la classique Default.png ne recommandons pas à utiliser car il est redimensionné et déformé en fonction de l'orientation, sont les suivants:

  • Default-Portrait.png
  • Default-PortraitUpsideDown.png
  • Default-Landscape.png
  • Default-LandscapeLeft.png
  • Default-LandscapeRight.png

e LandscapeRight possono essere utilizzate per determinare orietamento e verso di quest'ultimo. Versions PortraitUpsideDown , LandscapeLeft et LandscapeRight peut être utilisée pour déterminer orietamento et vers celui-ci.

Application à démarrer, puis, comme recommandé par Apple, il est bon "refonte" - si nécessaire - nos opinions agissant dans application:didFinishLaunchingWithOptions .

Suite ...

10 extraits utiles WordPress

Avec la sortie de WordPress 3.0 va changer beaucoup de choses pour les développeurs de nous. Mises à jour de cette version majeure sont nombreux et très utile pour ceux en développement avec ce CMS maintenant vraiment complet. Nous pourrions dire que si vous fermez une époque et ouvre une nouvelles possibilités et plein de. Je rends hommage aux versions précédentes, puis avec une gamme d'extraits de certains très utiles valide même avec la nouvelle version.

Suite ...

Très court extrait: diaporama de 10 lignes de code

Laissez-moi vous montrer comment mettre en œuvre un diaporama simple des images avec très peu de lignes de code, en utilisant jQuery .
Cette technique peut être mise en œuvre sur tout type de site, la chose importante est d'inclure la bibliothèque jQuery . J'ai utilisé cette technique pour un site construit dans WordPress , développé en quelques heures pour un événement.

Suite ...

WordPress: récupérer le contenu d'une page

Parfois, il peut être utile d'inclure dans une page le contenu d'un autre. Par exemple si vous avez créé une page d'inscription et de montrer volote dans une boîte de divulgations de confidentialité, il serait utile d'être en mesure de télécharger ce contenu sur une page existante. Ceci a l'avantage:

  • Le client peut modifier le contenu de la page sans "tocccare" la page d'origine qui contient
  • La page fonctionne bien seul, alors vous pouvez mettre dans le pied de page du site un lien vers la «vie privée», par exemple

La meilleure façon d'inclure le contenu d'une ou plusieurs pages est comme suit:

1
2
3
get_page_by_title ( "Privacy" ) -> ID ; PostID = $ get_page_by_title («Politique») -> ID;
get_post ( & $postID ) ; $ Message = get_post (& postid $);
"the_content" , $post -> post_content ) ; echo apply_filters ('the_content', $ post - post_content>);

L'ID de la poste (la page dans l'exemple ci-dessus) est obtenu par son titre à la fois pour la clarté et la compatibilité avec l'exportation ou de ré-indexer involontaire.

Suite ...



Arrêtez SOPA