Мы можем объявить двухмерный массив и непосредственно хранить элементы во время его объявления как:
int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
Здесь int представляет собой элементы целочисленного типа, хранящиеся в массиве, и имя массива - «метки». int является типом данных для всех элементов, представленных внутри скобок «{» и «}», потому что массив представляет собой набор элементов, имеющих один и тот же тип данных.
Возвращаясь к нашему заявлению, написанному выше: каждая строка элементов должна быть записана внутри фигурных скобок. Строки и элементы в каждой строке должны быть разделены запятыми.
Теперь посмотрите на инструкцию: вы можете получить 3 строки и 5 столбцов, поэтому JVM создает 3 * 5 = 15 блоков памяти , Эти блоки могут быть индивидуально обозначены как:
marks[0][0] marks[0][1] marks[0][2] marks[0][3] marks[0][4]
marks[1][0] marks[1][1] marks[1][2] marks[1][3] marks[1][4]
marks[2][0] marks[2][1] marks[2][2] marks[2][3] marks[2][4]
ПРИМЕЧАНИЕ. Если вы хотите сохранить элементы n , то индекс массива начинается с нуля и заканчивается на n- 1 . Другой способ создания двумерного массива состоит в том, чтобы сначала объявить массив, а затем выделить для него память, используя новый оператор.
int marks[][]; // declare marks array
marks = new int[3][5]; // allocate memory for storing 15 elements
Объединив два выше, мы можем написать:
int marks[][] = new int[3][5];
Этот код был выполнен до [window makeKeyAndVisible];
, который находится внутри делегата приложения. Так что не удивительно, почему keyWindow
был nil
еще.
Самый простой способ - получить окно от делегата приложения:
UIWindow *keyWindow = [[[UIApplication sharedApplication] delegate] window];
// Do something with the window now
Попробуйте, сначала получите дескриптор UINavigationController
, а затем topViewController
let navController = window?.rootViewController as! UINavigationController
let yourMainViewController = navController.topViewController as! ItemsViewController
или
let yourMainViewController = navController.viewControllers.first as! ItemsViewController
Я заметил, что после запуска управляемого доступа свойство keyWindow в [UIApplication sharedApplication], по-видимому, равно нулю.
Это случилось со мной только на iOS7, когда я впервые запускал режим управляемого доступа после его включения в меню «Настройки»> «Основные»> «Управляемый доступ», поэтому начальный вид GAM фактически отображается, а не отображается. прошло.
Так как этот Apple API кажется глючным, я решил использовать следующий код для получения окна, которое я ищу.
NSArray *windows = [[UIApplication sharedApplication] windows];
if ([windows count]) {
return windows[0];
}
return nil;
Вместо
[[UIApplication sharedApplication] keyWindow];
возможно, вы также можете попробовать использовать
[[[UIApplication sharedApplication] delegate] window];
, как указано iWasRobbed , но у меня это не сработало так как свойство rootViewController
недоступно таким образом.