NSMutableArray-Eigenschaft Initialisierung und Aktualisierung

Angenommen ich habe ein @property, das ist ein NSMutablearray, die enthalten erzielt vier Objekte. Sie wird initialisiert mit null und dann aktualisiert, während der viewDidLoad-und während des gesamten Betriebs der app.

Aus irgendeinem Grund, ich kann nicht wickeln meinem Kopf herum, was getan werden muss, besonders an der Deklaration und Initialisierung Schritte.

Ich glaube, das kann eine private Eigenschaft.

@property (strong, nonatomic) NSMutableArray *scores;

@synthesize scores = _scores;

Dann in viewDidLoad ich versuchen, so etwas wie dieses, aber eine Fehlermeldung erhalten. Ich brauche nur Hilfe mit der syntax, ich denke. Oder bin ich etwas fehlt sehr basic.

self.scores = [[NSMutableArray alloc] initWithObjects:@0,@0,@0,@0,nil];

Ist, dass ein geeigneter Weg, um ihn zu initialisieren? Dann, wie füge ich (NSNumber *)updateValue, sagen, der N-te Wert?

Edit: ich glaube ich habe es herausgefunden.

-(void)updateScoreForBase:(int)baseIndex byIncrement:(int)scoreAdjustmentAmount
{
    int previousValue = [[self.scores objectAtIndex:baseIndex] intValue];
    int updatedValue = previousValue + scoreAdjustmentAmount;
    [_scores replaceObjectAtIndex:baseIndex withObject:[NSNumber numberWithInt:updatedValue]];
}

Gibt es einen besseren Weg, dies zu tun?

  • Ich bin mir nicht sicher, ob ich die Frage verstehe
  • Was genau Fragen Sie? Haben Sie versucht, Sie zu deklarieren in Ihrer Implementierungsdatei (.m) und initialisieren Sie es in Ihrem viewDidLoad Methode (self.myMutableArray = [[NSMutableArray alloc]init];)?
  • Sie müssen ein wenig mehr beschreibende
  • Sie können zuweisen der array in die init-Methode oder in viewDidLoad oder was auch immer, oder verwenden Sie eine "on-demand" - Zuweisung in einer getter-Methode. Sobald es zugeordnet, jeder mit einem Zeiger auf das enthaltende Objekt verweisen können, dass die Eigenschaft (wenn öffentlich) und lese/schreib-array.
  • Beim hinzufügen von code auf meine Frage, wurde mir klar, mein Hauptproblem war die Vermischung NSMutableArray und NSArray, das wurde Erzeugung der Warnung, die mich glaube, ich hatte etwas schrecklich falsch. Aber ich denke, ich hatte die Allgemeine Idee Recht.
  • Yep, die Sie zuweisen können, einen NSMutableArray Zeiger auf ein NSArray Zeiger, aber nicht die andere Weise herum. NSMutableArray ist eine Unterklasse von NSArray.

InformationsquelleAutor Victor Engel | 2012-12-06
Schreibe einen Kommentar