Я ошибся при создании TableView class
и случайно сохранил @property
как copy
, когда я определил его:
@property (copy, nonatomic) NSMutableArray *words;
Я инициализировал массив "правильно": (обратите внимание, что это третья попытка, поэтому, пожалуйста, проигнорируйте тот факт, что я не использую mutableCopy и другие лучшие способы сделать это)
NSArray *fixedWords = @[@"Eeny", @"Meeny", @"Miny", @"Moe", @"Catch", @"A", @"Tiger", @"By", @"His", @"Toe"];
NSMutableArray *mutWords = [[NSMutableArray alloc] initWithArray:fixedWords];
self.words = mutWords;
Однако, когда я позже пришел, чтобы изменить порядок массива, он разбился на строке removeObjectAtIndex:
id object = [self.words objectAtIndex:fromIndexPath.row];
NSUInteger from = fromIndexPath.row;
NSUInteger to = toIndexPath.row;
[self.words removeObjectAtIndex:from];
С сообщением об ошибке
unrecognized selector sent to instance
Поймал много рывка, чтобы понять, что это потому, что копия означает, что присвоение NSMutableArray приводит к созданию стандартного (не подлежащего) NSArray. Может ли кто-нибудь объяснить, почему это правильное поведение?