Описание тега designated-initializer

In Cocoa programming, a designated initializer is the method through which all of the instance's initial parameters can be set. A designated initializer is typically executed implicitly when not called explicitly. In C programming, designated initializers refer to a certain way of struct/union/array initialization, which allows the programmer to to initialize an element by using its name or index.
1 ответ

Должны ли вы переопределять init при создании нового назначенного инициализатора?

Я прочитал довольно много о назначенных и удобных инициализаторах в objective-c и я чувствую, что хорошо понимаю, как и почему они используются. У меня просто пара нерешенных вопросов, ну один действительно. Скажем, у вас есть класс, который наследу…
05 ноя '15 в 13:02
1 ответ

Вызов суперкласса, обозначенный инициализатором, вызывает подклассы

У меня есть то, что кажется достаточно простой проблемой, но я просто не знаю, почему она работает так, как есть. У меня есть класс Shape, у которого есть подкласс Square. Когда я вызываю Square и вызываю его назначенный инициализатор, в self = [sup…
19 сен '13 в 00:04
1 ответ

Обнуление необычного массива

У меня есть немного кода C, воспроизведенного ниже. Насколько я понимаю, он устанавливает определенные биты массива BootPML4 на определенное значение. Может кто-нибудь объяснить, пожалуйста, как BootPML4 массив ниже заполнен? Кроме того, как я могу …
07 янв '14 в 22:49
2 ответа

Конструктор мешает переменной, назначенной инициализатору?

Некоторое время назад можно было использовать "назначенный инициализатор" в GCC: struct CC{ double a_; double b_; }; CC cc{.a_ = 1., .b_ = 2.}; assert(cc.a_ == 1. and cc.b_ == 2.); // ok CC cc{.bla = 0., .bli = 0.}; // compile error Однако, когда я …
1 ответ

-Wmissing-field-initializer при использовании назначенных инициализаторов

Я использую GCC 4.6.2 (Mingw) и компилирую с -Wextra, Я получаю странные предупреждения, когда использую назначенные инициализаторы. Для следующего кода typedef struct { int x; int y; } struct1; typedef struct { int x; int y; } struct2; typedef stru…
05 мар '14 в 10:23
0 ответов

Ошибка super.init(): должен вызвать указанный инициализатор суперкласса "x"

Я создал основной пользовательский класс, наследующий от существующего, следующим образом: Как видите, это дает мне основную ошибку назначенного инициализатора суперкласса. Тем не менее, я использовал это! У суперкласса есть только один init() без а…
1 ответ

Почему Clang решил разрешить назначенные инициализаторы в C++?

Я думал, что указанные инициализаторы были прекращены в C++ и работали только в C. Однако я натолкнулся на простой пример, который компилировался и прекрасно работал с clang ++. int main() { int a[6] = { [4] = 29, [2] = 15 }; } g ++: https://rextest…
31 янв '19 в 11:31
0 ответов

Как пометить обозначенные инициализаторы суперкласса как "недействительные" в Objective-C?

Из документа " Адаптация современной Objective-C": Если класс предоставляет один или несколько назначенных инициализаторов, он должен реализовать все назначенные инициализаторы своего суперкласса. Это означает, что если у меня есть подкласс NSObject…
19 июн '15 в 15:36
2 ответа

Как изменить переменные указателя в структуре?

Поэтому я пытаюсь реализовать связанный список, и у меня есть эта структура для каждого из узлов: typedef struct listNode { struct listNode *next; void *data; } NODE; Ранее я сделал игру, в которой структура космического корабля выглядела так: typed…
17 ноя '17 в 18:31
3 ответа

Почему я должен продолжать объявлять тот же обязательный, но не реализованный инициализатор для init(кодер aDecoder) для моего программного подкласса UIViewController?

Возможно, это только я, но я нахожу некоторые аспекты стремительными... глупыми, если не сказать больше. Я не использую Interface Builder большую часть времени, потому что мне нравится использовать PureLayout, Так что я надеялся сделать UIViewContro…
2 ответа

C99 Обозначенный дубликат индекса инициализатора вообще не помечен в выходных данных сборки или lint

На днях я немного поиграл с назначенными инициализаторами и, к своему удивлению, заметил, что один и тот же индекс допустимо использовать более одного раза. Более того, он даже не выдавал предупреждение компилятора, ошибку или даже информационное со…
24 май '13 в 19:37
1 ответ

Назначенные предупреждения инициализатора при вызове другого init из initWithCoder:

Я работаю над унаследованной кодовой базой и пытаюсь разрешить следующие предупреждения: Назначенный инициализатор должен вызывать только указанный инициализатор в "super" В указанном инициализаторе отсутствует "супер" вызов назначенного инициализат…
21 апр '17 в 11:26
1 ответ

Назначенный инициализатор и передаваемые аргументы

У меня есть эта иерархия: CreateAnObjectClass : NSObject MySecondClass : MyBaseClass MyBaseClass : NSObject в CreateAnObjectClass я хочу создать экземпляр метода MySecondClass, и я хочу передать @property (strong,nonatomic) NSDictionary* myTemplate …
08 май '12 в 11:39
0 ответов

Неопределенное наследование инициализатора из классов Objective C

Столкнувшись с проблемами при классификации UIKit классы и добавляя к ним неизменяемые переменные, я сделал тестовый проект, чтобы выяснить, что происходит. Мой вывод таков: если: у нас есть класс Objective C, который наследуется от другого класса, …
2 ответа

(iOS) Черный экран при пользовательской инициализации UIViewController

Это мой первый вопрос здесь. Я пытаюсь сделать приложение, которое будет работать с Core Audio. Я нашел этот фреймворк http://theamazingaudioengine.com/ который я пытаюсь использовать, и до сих пор мне удалось сделать первое в документации, а именно…
2 ответа

Проверьте назначенный инициализатор в xcode

Есть ли способ узнать, какой инициализатор назначен в суперклассе в XCode? Я набираю super(). Init.. затем Xcode показывает все инициализаторы суперкласса. Я хочу знать, есть ли какой-либо знак или символ, чтобы указать, какой из них обозначен? Такж…
19 дек '15 в 23:10
2 ответа

Отключите назначенную проверку инициализатора в Xcode 6

Я получаю ошибку компиляции: error: convenience initializer missing a 'self' call to another initializer [-Werror,-Wobjc-designated-initializers] Назначенные инициализаторы с проверкой компиляции могут быть полезны, но если я не хочу иметь дело с эт…
6 ответов

Почему обозначенные инициализаторы не реализованы в g++

Есть ли какая-то конкретная причина, почему поддержка назначенных инициализаторов не была добавлена ​​в g++? Является ли причиной того, что стандарты C99 пришли с опозданием, а g ++ был разработан ранее, и позже люди не заботились об этой проблеме, …
04 фев '11 в 17:05
2 ответа

Определение загадочной структуры в C

Я наткнулся на следующий код определения лабиринта: typedef struct mazeNode { int hasCheese; int tag; struct mazeNode *left; struct mazeNode *right; } maze_t; maze_t maze = { .tag = 1, .left = &(maze_t) { .left = &(maze_t) { .left = &(ma…
3 ответа

Что означает точка (.) В инициализаторе структуры?

static struct fuse_oprations hello_oper = { .getattr = hello_getattr, .readdir = hello_readdir, .open = hello_open, .read = hello_read, }; Я не понимаю этот синтаксис C хорошо. Я даже не могу искать, потому что я не знаю название синтаксиса. Что это…
08 ноя '11 в 07:38