Intereting Posts
ios 8.1 симулятор – запросы на кросс-начало поддерживаются только для HTTP UIButton не работает над подзаголовком UIWindow PFFacebookUtils не разрешается после обновления синтаксического анализа какао-пакета Создание маски из части изображения в iOS Loop не создает анимационную работу, swift 2 Itunesconnect отображает сообщение об ошибке «Вы не внесли никаких изменений» при добавлении видеообзора ios – определение единицы расстояния системы отображать текст во время IBAction в объективе-c Горизонтальная линейная диаграмма iOS в базовой диаграмме, показывающая два значения Поиск основных данных в разных операциях Поиск по всем строкам в словаре с использованием NSPredicate Время отклика очень мало в устройстве iPhone при сохранении или загрузке изображений Как установить пространство между ячейкой просмотра таблицы и удалением белого цвета для background contentView Простой обработчик завершения или обратный вызов в быстром Запуск анимации один за другим не выполняется

ios: NSArray containsObject: NSIndexPath

Я немного запутался в методе NSArray containsObject. Этот метод сравнивает указатели на объекты или их точное содержание? Чтобы быть более конкретным: у меня есть массив объектов NSIndexPath, созданных где-то раньше, и теперь я хочу проверить, есть ли объект NSIndexPath с row = 2 и section = 1. Если я напишу следующий код, будет ли он работать ?

[[self arrayOfPathes] containsObject: [NSIndexPath indexPathForItem: 2 inSection: 1]]; 

Я тестировал этот код, и это сработало для меня, но у меня был некоторый плохой опыт сравнения сравнению с указателями, а не с содержимым объекта (btw, этот код работал для меня и был одобрен для магазина приложений, но поздно многие из пользователей сообщил об ошибке, сделанной им).

Вы пытались найти в документах метод NSArray containsObject? В нем говорится:

Этот метод определяет, присутствует ли anObject в массиве, отправив сообщение isEqual: каждому из объектов массива (и передавая anObject в качестве параметра для каждого сообщения isEqual:).

Поэтому, если объект, о котором идет речь, реализует isEqual, чтобы сравнить настройку объекта вместо сравнения адреса, он будет работать.

Документы в NSIndexPath не говорят вам, реализует ли она пользовательскую реализацию метода isEqual или нет, но я бы предположил, что это так.