2010-02-25 13 views

Respuesta

16

intentar algo como esto.

#import <foundation/foundation.h> 
int main (int argc, const char * argv[]) 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    NSMutableArray *myArray = [NSMutableArray array]; 
    [myArray addObject:@"first string"]; 
    [myArray addObject:@"second string"]; 
    [myArray addObject:@"third string"]; 
    int count = [myArray count]; 
    NSLog(@"There are %d elements in my array", count); 
    [pool release]; 
    return 0; 
} 

El bucle se vería así:

NSString *element; 
int i; 
int count; 
for (i = 0, count = [myArray count]; i < count; i = i + 1) 
{ 
    element = [myArray objectAtIndex:i]; 
    NSLog(@"The element at index %d in the array is: %@", i, element); 
} 

Ver CocoLab

+0

Esto no responde cómo ASIGNAR a un índice específico. Solo cómo leer de él. –

10
NSMutableArray* abc = [NSMutableArray array]; 
for (int i = 0; i < 10; ++ i) 
    [abc addObject:[NSNumber numberWithInt:i]]; 
return abc; 

Aquí,

  • NSMutableArray es un tipo de matriz "mutable". También hay una matriz constante de super-type NSArray. A diferencia de C++, la matriz de ObjC no está tipada. Puede almacenar cualquier objeto ObjC en un NSArray.
  • -addObject: añade un ObjC al final de la matriz.
  • Como NSArrays solo puede almacenar ObjC, primero debe "encapsular" el entero en un NSNumber.

Esto es realmente más similar al código C++

std::vector<int> abc; 
for (int i = 0; i < 10; ++ i) 
    abc.push_back(i); 
return abc; 
3

veo alguna respuesta utilizando NSMutableArray, en peso es diferente entre esto y NSArray?

NSArray es inmutable : no se puede cambiar. NSMutableArray es una subclase que es mutable y agrega métodos a la interfaz de la matriz que permite la manipulación de sus contenidos. Este es un patrón que se ve en muchos lugares a lo largo de Cocoa: NSString, NSSet y NSDictionary son ejemplos particularmente frecuentes que son todos objetos inmutables con subclases mutables.

La razón principal de esto es la eficiencia. Puede hacer suposiciones sobre la administración de la memoria y la seguridad de los hilos con objetos inmutables que no puede hacer con objetos que podrían cambiar de debajo de usted.

Cuestiones relacionadas