2015-05-17 3 views
0

Использование xcode 6.3.1 и построение проекта для устройства IOS 8.3. Получение Обозначенный инициализатор должен вызывать только назначенный инициализатор при ошибке «super», может кто-то пожалуйста, настройте код пожалуйста.Назначенный инициализатор должен вызывать только назначенный инициализатор на «супер» xcode 6.3.1

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    if (!nibNameOrNil) { 
     return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    } 
    NSLog (@"%@ is now deprecated, we are moving away from nibs.", NSStringFromSelector(_cmd)); 
    return [self initWithStyle:UITableViewStyleGrouped]; 
} 

- (id)initWithCoder:(NSCoder *)aDecoder { 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     [self initWithStyle:UITableViewStyleGrouped]; 
    } 
    return self; 
} 

ответ

1

Ошибка здесь. Не вызывайте один из методов init из «self» из одного из методов init. Вы призываете:

[self initWithStyle:UITableViewStyleGrouped]; 

И вы должны достаточно вызвать:

[super initWithStyle:UITableViewStyleGrouped]; 

Или если у вас есть некоторая дополнительная логика в «я» для этой инициализации вы должны перепроектировать общий Initialise стек вызовов логики.

Нижняя строка: не вызывайте [self init ...] из init, только [super init ...] Или добавьте дополнительный, ваш настраиваемый (не переопределенный) метод init.

Кроме того: вы вызываете для init дважды.

Смежные вопросы