NSMutableArray Описание Метод - Массив массивов - PullRequest
1 голос
/ 22 декабря 2009

У меня есть массив, который содержит объекты массива. Массив массивов. Когда я применяю метод description к массиву, я не вижу данных во внутренних массивах. Вот код:

[runScoreDataArray addObject:[NSString stringWithString:currentUser]];
[runScoreDataArray addObject:[NSNumber numberWithDouble:mainScores.scoreTotal]];

NSLog(@"Array1 contains: %@", [runScoreDataArray description]);

// Now add the array runScoreDataArray to the Array highScoresArray
[highScoresArray addObject: runScoreDataArray];

// Empty the runScoresData Array after each run.
[runScoreDataArray removeAllObjects];

NSLog(@"Array2 contains: %@", [highScoresArray description]);

Распечатка NSLog для runScoresDataArray выглядит следующим образом: Массив1 содержит: (USER1,34500)

NSLog для highScoresArray читает: ARRAY2 содержит: ((), (), ())

Я ожидал увидеть данные для каждого элемента массива в распечатке NSLog, а не в пустых скобках.

Вопрос: Как я могу использовать метод description для распечатки содержимого массива массивов?

1 Ответ

6 голосов
/ 22 декабря 2009

Когда вы -addObject: runScoreDataArray в highScoresArray, он не копирует значения в массиве, он добавляет ссылку на фактический runScoreDataArray в родительский массив.

Таким образом, когда вы затем очищаете runScoreDataArray с помощью -removeAllObjects, это также влияет на ссылку в highScoresArray.

В зависимости от того, что вы ищете, вы можете захотеть что-то вроде:

[highScoresArray addObject: [NSArray arrayWithArray:runScoreDataArray]];

для вставки мелкой копии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...