NSArray по своей сути одномерен, вектор, если хотите, и, как отметил Джон, у него есть свойство count. Для имитации многомерного массива вы, конечно, могли бы иметь NSArray *rows
, который содержит число NSAarray *columnElement
и так далее. Это не очень многомерный массив и больше похож на структуру типа дерева, но вы можете назвать его массивом. Но я не думаю, что это то, о чем вы просите.
Я думаю, вы думаете о буфере памяти стиля C, пересекаемом ссылками указателей. Это также по своей сути одномерная структура, поскольку мембранное письмо одномерное. Во многих случаях такой буфер можно рассматривать как 2 или более размер таким образом, что вы говорите, что каждые 50 байтов являются строкой, поэтому позиция 0 является строкой 1 col 1, позиция 49 - это строка 1 col 50, а позиция 50 - строка 2 col 1 и т. Д.
В этом случае, поскольку вы являетесь дизайнером, который определил эту интерпретацию буфера как двумерного массива, не может быть способа получить структуру только из буфера. Либо вам нужно сохранить расположение буфера в качестве метаданных в других переменных, либо наложить какую-либо форму символов деления в буфере, например. newline для новой строки. и запятая для нового элемента столбца или аналогичного (но тогда это уже не массив, на мой взгляд, это формат файла, вот csv-файл).
'NSArray' или массив C, или что-то еще? –
@JoshCaswell пойдем с NSArray. Если для выполнения этой функции существует функция C, я могу использовать либо Objc, либо стандартный массив C. Мы можем предположить, что массив неизменен. –
Ну, 'NSArray' скажет вам свой [' count'] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/#//apple_ref/occ/instp/NSArray/count), и внутренний 'NSArray' может сделать то же самое. Я не уверен, что еще вам нужно. Есть ли какая-то более глубокая проблема, с которой вы столкнулись? –