Pytanie Jak dodać obiekty do NSArray za pomocą pętli for?


Chcę dodać [NSDecimalNumber numberWithInt:i] do tablicy używającej pętli for.

Jest on zakodowany na stałe:

 NSArray *customTickLocations = [NSArray arrayWithObjects: [NSDecimalNumber numberWithInt:1],[NSDecimalNumber numberWithInt:2],[NSDecimalNumber numberWithInt:3],[NSDecimalNumber numberWithInt:4],[NSDecimalNumber numberWithInt:5],[NSDecimalNumber numberWithInt:6],[NSDecimalNumber numberWithInt:7],[NSDecimalNumber numberWithInt:8],[NSDecimalNumber numberWithInt:9],[NSDecimalNumber numberWithInt:10],[NSDecimalNumber numberWithInt:11],[NSDecimalNumber numberWithInt:12],nil];

Tak chcę, ale mogę dodać tutaj tylko jeden obiekt ....

for (int i=0; i<totalImagesOnXaxis; i++)
{
    customTickLocations = [NSArray arrayWithObject:[NSDecimalNumber numberWithInt:i]];
}

Proszę, pomóż mi z tego, Z góry dziękuję, Madan


19
2017-10-21 07:20


pochodzenie


Dlaczego mimo wszystko potrzebujesz tablicy? Wygląda jak wartość w tablicy w indeksie i jest zawsze i. - raymi


Odpowiedzi:


NSArray jest niezmienny. Użyj wersji zmiennej, NSMutableArray.


40
2017-10-21 07:24





NSMutableArray * customTickLocations = [NSMutableArray new];
for (int idx = 0; idx < 12; ++idx) {
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:idx]];
}

...

20
2017-10-21 07:25





nie można dodawać obiektów w czasie wykonywania do NSArray. Do dodawania lub usuwania obiektów w czasie wykonywania należy użyć NSMutableArray.

NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
for (int i=0; i<10; i++) {
    [mutableArray addObject:[NSDecimalNumber numberWithInt:i]];
}

9
2018-05-24 05:04





NSMutableArray *customTickLocations = [NSMutableArray array];
for (int i=0; i<totalImagesOnXaxis; i++)
{
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:i]];
}

Klasa NSMutableArray deklaruje programowy interfejs dla obiektów zarządzających modyfikowalną tablicą obiektów. Ta klasa dodaje operacje wstawiania i usuwania do podstawowego zachowania obsługi macierzy odziedziczonego z NSArray

NSMutableArray Reference klasy


5
2017-10-21 07:25





NSMutableArray * customTickLocations = [[NSMutableArray alloc] init];
for(int i = 0; i<WhateverNoYouWant;i++){
NSDecimalNumber * x = [NSDecimalNumber numberWithInt:i]
[customTickLocations addObject:x]

    }

5
2017-10-21 07:25





Odkryłem, że używanie tej techniki jest świetnym sposobem na łatwe dodanie kilku dodatkowych elementów do NSArray, to była odpowiedź, której szukałem, kiedy przyszedłem do tego wątku, więc zamieszczam go, ponieważ jest to świetny łatwy dodatek.

Jeśli chcę dodać nową tablicę do mojej obecnej tablicy

currentArray = [currentArray arrayByAddingObjectsFromArray: newArray]; 

4
2018-05-29 09:35





NSArray dodaj obiekt w ten sposób:

NSArray *arr = @["1","2","3","4"];

Myślę NSArray nie może addObject lubić NSMutableArray. Powinieneś spróbować:

NSMutableArray *mulArr = [NSMutableArray new];
[mulArr addObject:[NSDecimalNumber numberWithInt:number]];

1
2017-09-13 08:52