Я экспериментировал с безопасностью типа в объективе c некоторое время. Я думаю, что у меня есть некоторые из них, но мне интересно, возможно ли следующее.Тип безопасности в петле
NSMutableArray <NSNumber *> *x = [NSMutableArray new];
[x addObject:@14];
[x addObject:@"s"]; // <--- Gives warning, good!
for (NSUInteger i = 0; i < x.count; i++) {
NSString *s = [x objectAtIndex:i]; // <-- Gives warning, good!
}
NSString *d = x[0]; // <-- Gives warning, good!
//but
for (NSString *s in x) // <-- expected warning but didn't get it
NSLog(@"%@", [s stringByAppendingString:@"s"]; // <-- no warning just run time error
Так что мой вопрос в том, может ли цикл for for вызывать предупреждение при использовании неправильного объекта. Я хочу использовать for for, поскольку он быстро и скрывает детали реализации.
Obj-C не реализует дженерики. На самом деле, нет. Эти дженерики существуют для поддержки Swift. Это не означает, что они будут применяться в коде Obj-C. Возможно, в будущем, но, к сожалению, это связано с проблемами совместимости, поэтому я не думаю, что это вероятно. – Sulthan
Если человек, который дал минус, мог бы объяснить это, что было бы здорово! Я действительно хочу понять эту тему. Так что, если я неясен или просто глупый, просто скажите мне – Haagenti
Наверное, просто недосмотр в компиляторе. –