2012-01-03 4 views
0

Je suis le codage demande du passé 1 an, mais la première fois que je suis tombé sur un argument bizarre de sélection à la recherche,compréhension syntaxique nécessaire en langage Objective C

- (NSString *)dictionaryForString:(NSDictionary *)dictionary error:(NSError **)error 

Comme vous pouvez le voir (NSDictionary *) est avec un astérisques et (NSError **) avec deux, Alors, quelle est la différence entre avoir un ou deux astérisques?

Merci

Répondre

4

Cette méthode retourne une erreur par référence, qui est, vous passez une adresse d'un pointeur vers un NSError et (éventuellement) fixe la valeur du pointeur.

NSError *error = nil; 
NSString *result = [obj dictionaryForString: dict error: &error]; 
if (!result) 
    NSLog(@"%@", error); 

Ceci est une pratique courante en C.

+0

Eh oui, il a! merci – doNotCheckMyBlog

2

NSDictionary * signifie qu'il est l'adresse de départ d'un objet NSDictionary en mémoire NSError ** signifie qu'il est indiqué à l'adresse de la mémoire commence à un objet NSError

+0

Maintenant, c'est logique! :) Merci – doNotCheckMyBlog

Questions connexes