В вашем коде много проблем, пожалуйста, внимательно проверьте код.
Я предполагаю, что SomeSuperClass
, вероятно, наследуется от UIViewController
1. Инициализация не возвращает объект экземпляра
Все методы инициализации должны иметь возвращаемое значение, код, который вы предоставляете, не имеет возвращаемого значения, вы должны изменить его на
- (instancetype)init{
if (self = [super init]) {
_classB = [[ClassB alloc]initWithParent:self];
}
return self;
}
2. weak
свойство модификатора
Как правило, только weak
используется для решения циклических ссылок. Этого следует избегать в другое время и он будет выпущен сразу после использования.
3. someString
свойство не видит инициализацию
4. Порядок, в котором ClassA
и ClassB
вводят
Я предполагаю, что вы решили предыдущую проблему, и необходимо сначала ввести ClassA
, затем ввести ClassB
.
Чтобы ввести ClassB
из ClassA
, вы должны использовать инициализированное свойство classB
, например,
ClassA.m
[self.navigationController pushViewController:self.classB animated:YES];
Затем, наконец, выполнить viewDidLoad
при отображении ClassB
, вы можете получить правильныйsomeString