NSMutableArray
以下は、指定した文字列の数を含む配列のa を出力します。したがって、文字列の数が 3 の場合、文字列が残っていない場合を除き、各配列には 3 つの文字列が含まれます。その場合、できるだけ多くの文字列が追加されます。
int numLines = 4;
int numWordsPerLine = 3;
NSArray *strings = @[@"String1", @"String2", @"String3", @"String4", @"String5", @"String6", @"String7", @"String8"];
NSMutableArray *matrixArray = [NSMutableArray arrayWithCapacity:numLines];
NSEnumerator *enuma = [strings objectEnumerator];
int linesCount = 0;
while (linesCount < numLines) {
[matrixArray addObject:[NSMutableArray array]];
for (int i = 0; i < numWordsPerLine; i++) {
id nextObject = [enuma nextObject];
if (nextObject) {
[[matrixArray objectAtIndex:linesCount] addObject:nextObject];
}
}
linesCount++;
}
NSLog(@"Matrix %@", matrixArray);
それは出力します:
2013-11-12 11:42:06.940 WordPuzzle[1900:a0b] Matrix (
(
String1,
String2,
String3
),
(
String4,
String5,
String6
),
(
String7,
String8
),
(
)
)
numLines
2 に変更してnumWordsPerLine
から 4 に変更すると、次のようになります。
2013-11-12 11:43:39.014 WordPuzzle[1936:a0b] Matrix (
(
String1,
String2,
String3,
String4
),
(
String5,
String6,
String7,
String8
)
)