Archives Juillet 2010


Très court extrait: NSURL, et divers possibles

Retourne le nom d'un fichier de l'objet NSURLRequest , vous permettant de décider si oui ou non son extension:

Suite ...

Refonte Saidmade: beaucoup plus de services

Après des jours de «épuisant» de travail, nous avons enfin sorti la nouvelle version du site "business" saidmade.com ! Il était difficile, aussi parce que d'abord nous avons voulu corriger certaines choses, mais ensuite - éventuellement - en raison de la précision maniaque frappe ceux qui sont directement concernés, nous sommes réunis pour réaliser un remake véritable de la totalité du site. Vous pouvez trouver toutes les nouvelles directement dans votre nouveau blog ! Permettez-moi de citer quelques-uns ajout important au restyling:

  • Réorganisation de tout le contenu
  • Possibilité de s'inscrire (gratuitement) l'accès au site pour les téléchargements de bonus et les aperçus des zones restreintes
  • Inscription à la newsletter
  • Intégration du blog (bye bye les laboratoires)
  • et plus encore ...
  • Suite ...

Très court extrait: obtenir le nombre de messages, Page et pièces jointes

Combien d'entre vous le savez, la table wp_posts est utilisé pour stocker le poste de WordPress, les pages et les pièces jointes. Le type de l'élément stocké est déterminée par le champ post_type . . Avec select proposée ci-dessous, vous pouvez «compter» individuellement les différents types d'éléments dans memrizzate wp_posts .

Suite ...

Très court extrait: enregistrement d'une image dans l'album photo

Un moyen facile d'enregistrer une image dans l'album photo de l'appareil à l'intérieur de notre application (ou chargé à partir distance):

Suite ...

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 - les fichiers 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 rédiger du courrier 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, bien utilisés, qui contiennent une variété de 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 un cycle 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 ] ; return [é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 ...