Désolé pour la question simple, mais je suis autodidacte et savons qu'il y a des lacunes dans mes études.
Imprimer un tableau dans l'objectif C, je crois: P>
NSLog(@"My array: %@", myArray);
7 Réponses :
Essayez de vous connecter la valeur de retour à partir de nsarray code> 'S -Description code> méthode. NSLog(@"My array: %@", [myArray description]);
Ce sera le même. Le spécificateur de format % @ code> utilise le résultat de la méthode code> (code> (ou cfcopydescription () code> pour les objets de base de la fondation).
ou utiliser recursivedescriptions code> :)
Où est cette méthode documentée?
Ce n'est pas une méthode documentée pour nsarray code> car cela ne fonctionne pas.
Désolé, à ma connaissance de ma & googles, c'est juste une mauvaise réponse. J'ai dû descendre. Je changerai que si vous pouvez fournir une explication ..
Ma faute. Ceci est une méthode non documentée sur UIView de jeter une description d'un UIView et de ses enfants; Je suppose (à tort) que la méthode fonctionne sur tous les objets tactiles de cacao, mais c'est en fait juste des uiviews. Pardon!
Ajout d'une réponse différente et laissant cela ici comme un avertissement que cette méthode non documentée ne s'applique qu'à UIView.
vous voulez ceci:
for(NSArray *subArray in myArray) {
NSLog(@"Array in myArray: %@",subArray);
}
Sans boucle. Comment accéder directement à l'élément de tableau? Par exemple: Char A [0] = 'x'; COUT << A [0]; ?
De plus, pour imprimer tous les éléments
Vous n'avez pas besoin de faire quelque chose de différent pour connecter un tableau de tableaux; Le code exactement comme vous l'avez écrit indiquera déjà le contenu des sous-tableaux.
C'est-à-dire, le programme suivant: p> produit la sortie suivante: P> Array: (
(
0
),
(
0,
1
),
(
0,
1,
2
),
(
0,
1,
2,
3
),
(
0,
1,
2,
3,
4
)
)
C'est de loin la meilleure réponse, car c'est le plus simple. Si vous avez des objets personnalisés dans les tableaux, vous pouvez toujours remplacer NsObject code> 's -Description code> méthode pour en faire quelque chose de plus approprié pour cette classe.
Alors j'étais gêné par la chose recueillie, alors j'ai écrit la mienne en tant que catégorie sur Nsarray. Notez que ce code imprimera une description d'une matrice de tableaux à n'importe quelle profondeur. La description elle-même pourrait probablement utiliser un peu plus de formatage que les virgules et les nouvelles lignes. Ici vous allez:
@interface NSArray (RecursiveDescription)
- (NSString *)recursiveDescription;
@end
@implementation NSArray (RecursiveDescription)
- (NSString *)recursiveDescription {
NSMutableString *description = [[NSMutableString alloc] initWithString:@"Array (\n"];
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
for (NSObject *child in self) {
if ([child respondsToSelector:@selector(recursiveDescription)]) {
[description appendFormat:@"%@,\n", [child recursiveDescription]];
}
else {
[description appendFormat:@"%@,\n", [child description]];
}
}
[pool drain];
[description appendString:@"\n)"];
return [description autorelease];
}
@end
Autant que j'aime à quel point il est facile de vous déconnecter un objet dans l'objectif-C, je n'ai pas aimé avoir vu un tableau 2D comme une très longue liste. J'ai créé une catégorie sur Nsarray qui imprime des tableaux 2D. Ce n'est pas parfait et peut être amélioré, mais cela a fonctionné pour moi.
en-tête: p> implémentation: p> [myArray log2DArray];
Voulez-vous dire un
nsarray code> densarray code> s? Ou voulez-vous dire quelque chose commeconst char truc [3] [2] code>? Parce que les deux sont des choses très différentes.Je voulais dire un nsarray de Nsarrays.