Нередко возникает необходимость передавать собственные структуры в NSArray и аналогичных коллекциях, которые принимают в качестве элемента тип id.

Естественно, сделать этого напрямую нельзя, так как структуры языка С несовместимы с типом id, но это довольно просто обойти. Для этого следует воспользоваться типом NSValue.

Тип NSValue хорош тем, что в него можно положить произвольную структуру и достать ее оттуда, причем этот тип поддерживает типобезопасность за нас.

Допустим, у нас есть структура

С помощью категории, расширим класс NSValue парой методов

Тепреь можно работать с этими объектами в принятой в Objective C стилистике и не бояться за типобезопасность.

Share →

Leave a Reply

Войти с помощью: 

Your email address will not be published. Required fields are marked *

PageLines