7
votes

Impression d'un tableau de matrices dans l'objectif c

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);


2 commentaires

Voulez-vous dire un nsarray de nsarray s? Ou voulez-vous dire quelque chose comme const char truc [3] [2] ? Parce que les deux sont des choses très différentes.


Je voulais dire un nsarray de Nsarrays.


7 Réponses :


0
votes

Essayez de vous connecter la valeur de retour à partir de nsarray code> 'S -Description code> méthode.

NSLog(@"My array: %@", [myArray description]);


1 commentaires

Ce sera le même. Le spécificateur de format % @ utilise le résultat de la méthode (code> (ou cfcopydescription () pour les objets de base de la fondation).



-3
votes

ou utiliser recursivedescriptions :) xxx


5 commentaires

Où est cette méthode documentée?


Ce n'est pas une méthode documentée pour nsarray 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.



11
votes

vous voulez ceci:

for(NSArray *subArray in myArray) {
    NSLog(@"Array in myArray: %@",subArray);
}


1 commentaires

Sans boucle. Comment accéder directement à l'élément de tableau? Par exemple: Char A [0] = 'x'; COUT << A [0]; ?



0
votes

De plus, pour imprimer tous les éléments xxx


0 commentaires

5
votes

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> xxx pré>

produit la sortie suivante: P>

Array: (
        (
        0
    ),
        (
        0,
        1
    ),
        (
        0,
        1,
        2
    ),
        (
        0,
        1,
        2,
        3
    ),
        (
        0,
        1,
        2,
        3,
        4
    )
)


1 commentaires

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 's -Description méthode pour en faire quelque chose de plus approprié pour cette classe.



2
votes

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


0 commentaires

0
votes

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> xxx pré>

implémentation: p>

[myArray log2DArray];


0 commentaires