aFloatArray [] [] ilkel biçiminde yuva dizileri olmadan iki boyutlu NSArray oluşturmanın bir yolu var mı?Çok boyutlu NSArray nesnesi
Teşekkür ederiz.
aFloatArray [] [] ilkel biçiminde yuva dizileri olmadan iki boyutlu NSArray oluşturmanın bir yolu var mı?Çok boyutlu NSArray nesnesi
Teşekkür ederiz.
Ne yazık ki değil. Çok boyutlu NSArray oluşturmak için: (o C sıkı bir üst olduğundan)
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];
Ancak, vardı gibi diziyi olduğuna dair karar sizin ihtiyaçlarınız varsa, Objective-C C kodu kullanabilirsiniz önerdi.
Çöp toplama kullanmıyorsanız, dizinin her birini "multiArray" içinde sızdırıyorsunuz demektir. Düzeltmek için, '[NSMutableArray array]' yerine kullanın. –
Gerçekten mi? [NSMutableArray dizisi], otomatik olarak yüklenen NSMutableArray öğesinin döndürülmesi anlamındaydı; Kesinlikle bakacağım, çünkü eğer doğruysa, lol – FatalMojo
Evet'e geçmek için çok fazla kod var. Bunun anlamı, otomatik olarak yüklenen nesnenin _is_ eklendiği dizi tarafından tutulmasıdır. Ebeveyn dizisi serbest bırakıldığında, içeriği de öyle. Bir diziye '[NSMutableArray new]' eklerseniz, tutma sayısı "2" olur. Ebeveyn dizisi serbest bırakıldığında, çocuklarının her birinin hala 1 numaralı bir tutma sayısı vardır. –
Bunu yapabilirsin:
NSArray *array = @[@[@"0:0", @"0:1"],
@[@"1:0", @"1:1"]];
NSString *value = array[1][0];
ben bu "objectAtIndex" şeyler çok daha kısa olduğunu düşünüyorum.
ama kullanmak zorunda dikkat Elma LLVM Derleyici sürüm> = 4.0
Bu kesinlikle modern bir yaklaşımdır. –
Toplama veya TableView cellForRowAtIndexPath içinde Boyutlu dizide bir nesne eklemek için:
NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];
[dictionary setValue:[UIImage imageWithData:imageData] forKey:sectionRow];
Koleksiyonu'nda Boyutlu diziden bir nesneyi almak için veya TableView cellForRowAtIndexPath:
NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];
UIImage *cellImage = [dictionary valueForKey:sectionRow];
Neyi başarmanız gerekiyor? Belki de çözdüğünüz problem için daha uygun başka yaklaşımlar olabilir. – jlehr