¿Hay alguna manera de crear NSArray bidimensional sin matrices de anidación en el formato primitivo aFloatArray [] [].objeto NSArray multidimensional
Gracias.
¿Hay alguna manera de crear NSArray bidimensional sin matrices de anidación en el formato primitivo aFloatArray [] [].objeto NSArray multidimensional
Gracias.
Desafortunadamente no. Para crear un NSArray multidimensional:
NSArray *multiArray = [NSArray arrayWithObjects:
[NSMutableArray array],
[NSMutableArray array],
[NSMutableArray array],
[NSMutableArray array], nil];
// Add a value
[[multiArray objectAtIndex:1] addObject:@"foo"];
// get the value
NSString *value = [[multiArray objectAtIndex:1] objectAtIndex:0];
Sin embargo, puede utilizar el código C en Objective-C (ya que es un superconjunto estricto de C), si se ajusta a su necesidad se podría declarar la matriz, como lo hizo sugirió.
Si no está utilizando la recolección de basura, está filtrando cada una de las matrices dentro de 'multiArray'. Para solucionarlo, use '[NSMutableArray array]' en su lugar. –
¿De verdad? Tenía entendido que [NSMutableArray array] devolvió un NSMutableArray liberado automáticamente, que a su vez sería retenido por el NSArray al que se está agregando. Definitivamente lo buscaré porque si estás en lo cierto, tengo un montón de código para pasar por lol – FatalMojo
Sí. El punto es que el objeto de autorregresión _es_ retenido por la matriz a la que se agrega. Cuando se lanza la matriz principal, también lo hace su contenido. Si agrega '[NSMutableArray new]' a una matriz, su retención se convierte en '2'. Cuando se lanza la matriz principal, cada uno de sus hijos todavía tiene un conteo de retención de '1'. –
Usted puede hacer esto:
NSArray *array = @[@[@"0:0", @"0:1"],
@[@"1:0", @"1:1"]];
NSString *value = array[1][0];
creo que esto es mucho más corta que la materia "objectAtIndex".
pero ojo que tiene utilizar la versión de Apple LLVM compilador> = 4.0
Este es definitivamente el enfoque moderno. –
Para insertar un objeto en Conjunto multidimensional en la colección o TableView cellForRowAtIndexPath:
NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];
[dictionary setValue:[UIImage imageWithData:imageData] forKey:sectionRow];
para recuperar un objeto de la matriz multidimensional en la colección o TableView cellForRowAtIndexPath:
NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];
UIImage *cellImage = [dictionary valueForKey:sectionRow];
¿Qué es lo que necesita lograr? Tal vez haya otros enfoques aún más adecuados para el problema que está resolviendo. – jlehr