Im пытается установить массив для программы таймера im, записывающей в xcode. значения находятся в секундах, и я хочу, чтобы в конструкторе интерфейса была кнопка, которая запускает таймер с таким количеством секунд. Это struct im пытается объявить, чтобы предоставить время в файле заголовка .h. его просто массив с двумя массивами в нем, который я мог бы назвать с помощью @ collegeTimes.constructive или что-то подобное.Значения Array в приложении Cocoa - Инициализатор не является постоянной ошибкой
Заранее благодарен!
- (NSDictionary *)debateTimes;
id debateTimes = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSDictionary dictionaryWithObjectsAndKeys:
@"540", @"constructive",
@"360", @"rebuttal",
@"180", @"cx",
@"600", @"prep",
nil], @"collegeTimes",
[NSDictionary dictionaryWithObjectsAndKeys:
@"480", @"constructive",
@"300", @"rebuttal",
@"180", @"cx",
@"480", @"prep",
nil], @"hsTimes",
nil]; \\error is called here.
+1 Кроме того, желательно разместить статическое содержимое внутри '+ [SomeThing debateTimes]', когда это возможно: 'static NSDictionary * const staticDebateTimes = CreateDebateTimesDictionary();' – justin
@Justin: Вы знаете, это имеет смысл, но у меня никогда не было видел, как это делается внутри тела метода. Есть ли причина предпочитать одну над другой? –
уменьшает вероятность ошибки/повторного использования/неправильного использования/столкновений из-за локальности. он также инициализируется при входе, вы можете удалить nil-check. это еще один пример того, как использовать статические данные, что лучше всего подходит для контекста - в каждом конкретном случае. немного чище, и хорошая добавленная безопасность. – justin