У меня есть такой метод, который выполняет дальнейшую инициализацию других объектов с аналогичными методами init.
- (Foo*)initWithInput:(NSMutableString*)i {
bar = [[Bar alloc] initWithInput:input];
return self;
}
Это выдает предупреждение "Foo.m: 19: предупреждение: несовместимые типы Objective C, назначающие" struct Foo * ", ожидаемый" struct Bar * '"
Я предполагаю, что метод alloc возвращает тип (id), а затем компилятор не может решить, какой initWithInput: метод, который я хочу использовать для выделенного объекта. Конечно, я могу удалить предупреждение, но это не очень красиво
- (Foo*)initWithInput:(NSMutableString*)i {
bar = [((Bar*)[Bar alloc]) initWithInput:input];
return self;
}
Есть ли идиоматический способ справиться с этим?