Этот код является модифицированной версией Закаленного словаря, реализованной здесь. https://github.com/nicklockwood/OrderedDictionary/tree/master/OrderedDictionaryНазначенный инициализатор должен вызывать только назначенный инициализатор на 'super'
Интерфейс -> OrderedDictionary.h
@interface OrderedDictionary : NSMutableDictionary
{
}
Реализация -> OrderedDictionary.m
// This is the new method added.
- (instancetype)init
{
return [self initWithCapacity:0];
}
- (instancetype)initWithCapacity:(NSUInteger)capacity
{
self = [super init];
if (self != nil)
{
// Allocate here.
}
return self;
}
код работает отлично, но я получаю следующие предупреждения в «- (instancetype)в этом".
- Место инициализатор должен вызывать только назначенный инициализатору на «супер»
- Места инициализатор отсутствует вызов «супер» к назначенному инициализатору супер класса
Что я делаю неправильно и как я могу это исправить?
внесены следующие изменения в код, чтобы решить эту проблему
// This is the new method added.
- (instancetype)init
{
self = [super init];
if (self != nil)
{
// Allocate here.
}
return self;
}
- (instancetype)initWithCapacity:(NSUInteger)capacity
{
self = [super initWithCapacity:capacity];
if (self != nil)
{
// Allocate here.
}
return self;
}
Хотя @ KirkSpaziani Ответим сделал трюк, то [IOS Разработка библиотеки Инициализация объекта] (https://developer.apple.com/library/prerelease/ios/releasenotes/ObjectiveC/ModernizationObjC/AdoptingModernObjective-C/AdoptingModernObjective-C. html # // apple_ref/doc/uid/TP40014150-CH1-SW8) добавляет некоторые подробности. –