Я должен согласиться как с узлом ниндзя, так и с PeyloW, потому что технически они оба имеют право.На самом деле, это мне мало помогает.
Преамбула : в коде много массивов, которые все в одном содержат только один, но различный тип данных, например, classA, classB, classC.
Проблема : Я могу легко смешивать массивы, передавая неправильный один, например, некоторому селектору, потому что все они NSMutableArray.Нет статической проверки, только во время выполнения.
Решение - 1-я попытка : создать подкласс NSMutableArray, чтобы компилятор делал статическую проверку и предупреждал о неправильном типе данных.
Тоэто хорошо, потому что компилятор предупреждает вас, даже когда вы передаете неправильный тип в -addObject или -objectAtIndex, когда вы перегружаете эти.Это плохо, потому что вы не можете создать экземпляр суперкласса NSMutableArray таким способом.
Решение - вторая попытка : создать новый (прокси) класс некоторого типа, например NSObject, как для NSMutableArray, и добавить член класса типа NSMutableArray.
Это хорошо, потому что вы можете создавать экземпляры проверок NSMutableClass и компилятора при передаче неверного типа в -addObject или -objectAtIndex при перегрузке этих.
Плохая сторона этого в том, что вам нужноперегрузить каждый селектор NSMutableArray, который вы используете, а не только те, которые отличаются в классе, который содержит массив.
Заключение : Когда вы создаете сложный код, который имеет много типов классов в своеммассивы, поверьте мне, стоит попробовать.Просто этот компилятор показал мне несколько ошибок, которые я бы не узнал, пока не столкнусь с этим во время выполнения.Или еще хуже, когда конечный пользователь столкнется с этим.