NSMutableArray *array = [[NSMutableArray alloc] init];
NSString *string = @"string";
[array addObject:string];
NSDate *date = [[NSDate alloc] init];
[array addObject:date];
for (*placeholder* stuff in array)
NSLog(@"one");
Если изменить заполнитель либо NSString * или NSDate *, я ожидал увидеть «один», потому что цикл должен просто игнорировать тип, не соответствующий. Однако результат «один».Зачем устанавливать типы в быстрых циклах перечисления Obj-c?
Не означает ли это, что у вас должно быть только placeholder быть какой бы ни была ситуация, поскольку это нисколько не имеет значения?
Можете ли вы рассказать о том, что вы подразумеваете под «странными кастами»? какие проблемы могут возникнуть? – hollow7
, если вы сделаете 'for (NSDate * obj in array)', любой объект в массиве будет передан NSDate, независимо от того, является ли это полным смысла или нет. – vikingosegundo
, и из-за характера объектива-c он даже будет работать, поскольку вы не отправляете сообщение, которое понятно только NSDate. – vikingosegundo