我有一个包含数组对象的Array。一组数组。当我将描述方法应用于数组时,我看不到内部数组中的数据。这是代码:
[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]);
runScoresDataArray的NSLog打印输出应该按原样读取: Array1包含:(USER1,34500)
NSLog for highScoresArray读取: ARRAY2包含:((),(),())
我希望在NSLog打印输出中看到每个数组元素的数据,而不是空括号。
问题:如何使用描述方法打印出数组数组的内容?
答案 0 :(得分:6)
当您-addObject:
runScoreDataArray
到highScoresArray
时,它不会复制数组中的值,而是向父数组添加对实际runScoreDataArray
的引用。< / p>
因此,当您继续使用runScoreDataArray
清除-removeAllObjects
时,也会影响highScoresArray中的引用。
根据您所追求的内容,您可能需要以下内容:
[highScoresArray addObject: [NSArray arrayWithArray:runScoreDataArray]];
插入浅拷贝。