Итак, очевидно, после WWDC я играю с новыми материалами, представленными на прошлой неделе. Как вы знаете, Apple ввела дженерики в мир Objective-C
Примечание. Этот ответ является последовательным ответом на этот вопрос: Существуют ли строго типизированные коллекции в Objective-C?
Я пробовал этот код в методе, отлично работает
NSMutableArray<NSString*> *array = [[NSMutableArray alloc] init];
[array addObject:@""];
[array addObject:@(54)];Incompatible pointer types sending 'NSNumber *' to parameter of type 'NSString * __nonnull'
// Great, generics works as expected.
Однако у меня также есть метод, который я хочу преобразовать в generics
В заголовочном файле:
- (NSArray <NSString*> *)objectsToSearch;
Реализация:
- (NSArray <NSString*> *)objectsToSearch
{
NSString *first = @"1";
NSString *second = @"2";
NSString *third = @"3";
NSNumber *test = @(55);
return @[first, second, third, test]; // No-error!!!
}
Я делаю что-то не так, или Кланг не поддерживает дженерики + литералы или что-то еще мне не хватает?