Ich versuche, ein NSArray als Wert in einem NSMutableDictionary zu speichern. Wenn ich versuche, zu holen, was ich hinzugefügt haben, gibt es eine NSFCArray anstelle eines NSArray:NSArray wurde beim Einfügen in das Wörterbuch in NSCFArray umgewandelt
NSArray * list = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
NSMutableDictionary * dictionary = [[NSMutableDictionary alloc] init];
for (NSString *name in list) {
// first attempt
[dictionary setObject:[NSMutableArray arrayWithObject:@"test"] forKey:name];
NSLog(@"first attempt class: %@", [[dictionary valueForKey:name] class]);
// second attempt
NSArray * realArray = [[NSArray alloc] initWithArray:[dictionary valueForKey:name]];
NSLog(@"second attempt class: %@", [realArray class]);
}
Ich gehe davon aus ist dies für Effizienz umgewandelt wird. Allerdings muss mein Wert als NSArray zurückgegeben werden, um Methoden wie "count" aufzurufen, die NSFCArray nicht hat. Wenn ich Werte nicht in einem Wörterbuch als NSArray speichern kann, wie kann ich von einem NSFCArray in ein NSArray konvertieren?
Ah, jetzt zähle ich so in meinem Beispiel funktioniert. Ich bekomme anderswo ein schlechtes Zugangsproblem, aber das ist ein anderes Problem. Danke für die Hilfe! – tassock