Приведение объекта NSSet
к NSArray
не будет делать ничего другого, что заставит компилятор думать, что объект является NSArray
. На самом деле, объект является NSSet
объектом, и попытка использовать его как NSArray
приведет к ошибке.
Другой способ убедиться в том, что приведение - это просто уловка с указателями, а не с указанными объектами, которые остаются неизменными.
Приведение является безопасным только в определенных случаях, например, когда вы преобразуете из производного класса в базовый класс; или когда вы абсолютно уверены, что реальный тип базового объекта соответствует типу, к которому вы его приводите.
В любом случае, в вашем конкретном случае вы можете попытаться получить доступ к элементам NSSet через NSArray, используя:
[newAnnotations allObjects]
Это
Возвращает массив, содержащий членов набора, или пустой массив, если в наборе нет членов.