Ответ 1
Новая доставка Clang с Xcode 6 позволяет назначать инициализаторы, назначенные компилятором, через макрос NS_DESIGNATED_INITIALIZER. Когда он маркирует какой-либо один из методов init-family в объявлении класса, все остальные инициализаторы считаются "вторичными" (для использования терминов "Яблочная терминология" ). То есть, они должны вызвать один или другой назначенный или вторичный инициализатор, пока не достигнут назначенного инициализатора.
UIView не отмечает ничего как назначенный инициализатор, поэтому где-то вы объявили еще один метод инициализации класса как назначенный инициализатор. Из-за этого инициализатор NSCoder становится помеченным как вторичный и генерирует предупреждение. Я зарегистрировал радар (rdar://17559176) об этом, но до этого его можно отключить по каждому файлу, указав -Wno-objc-designated-initializers
, или предоставив соответствующий диагностический push-pop с помощью -Wobjc-designated-initializers
.