Я только что попробовал быстрый пример ... Вот мой код.
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:1];
NSNumber *number = [NSNumber numberWithInteger:6];
[array addObject:number];
[array addObject:@"Second"];
Теперь, если я просто зарегистрирую объект, нет проблем.Экземпляр NSNumber
приводится как NSString
, но оба метода отвечают на -description
, поэтому это не проблема.
for (NSString *string in array)
{
NSLog(@"%@", string);
}
Однако, если я попытаюсь войти -length
в NSString
...
for (NSString *string in array)
{
NSLog(@"%i", string.length);
}
... он выдает NSInvalidArgumentException
, потому что NSNumber
не отвечает на селектор -length
.Короче говоря, Objective-C дает вам много веревки.Не вешайся на это.