Intereting Posts
Как чередовать между скрытыми = ДА и скрытыми = НЕТ при нажатии кнопки в iOS? Линии обнаружения Tesseract Отображение объектов RestKit с использованием внешних ключей и служб Разрешение пространства имен TouchXML? Запрос отправки Swift 3.0 не отправляет параметры должным образом? Использование AKHighPassFilter от AudioKit для фильтрации частот rootViewController установлен, но появляется как неправильная ориентация Доступ к классу из другой цели с помеченным как «общедоступный», Автоматическое изменение размера UIView при переходе в subviews Использовать пользовательский шрифт в проблеме приложения error: expected ')' перед 'CLLocation' Сравнение iOS NSDate работает по-разному, когда настройки 24-часового времени в день переключаются между ON и OFF? ViewController появляется для перехода дважды Измените атрибуты UIButton для определенного состояния, если нет выделенного метода Можете ли вы модифицировать NSExceptionMinimumTLSVersion в iPhone App Info.plist программно?

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 или нет, но я бы предположил, что это так.