как добавить непрозрачные типы в коллекции - PullRequest
0 голосов
/ 02 февраля 2009

Как добавить непрозрачный тип в коллекцию какао?

Я получаю предупреждение компилятора за это (очевидно, потому что непрозрачные типы не являются объектами):

CGColorSpaceRef colorSpace;
NSArray *myArray = [NSArray arrayWithObject:colorSpace];

Ответы [ 2 ]

3 голосов
/ 02 февраля 2009

Вы можете использовать класс NSValue для переноса ваших непрозрачных типов в объект. С здесь :

NSValue объект является простым контейнер для одного C или Элемент данных Objective-C. Это может держать любой скалярных типов, таких как int, плавать, и символ, а также указатели, структуры и идентификаторы объектов. Цель этого класса состоит в том, чтобы позволить элементы таких типов данных, которые будут добавлены в коллекции, такие как экземпляры NSArray и NSSet, которые требуют их элементы должны быть объектами. NSValue объекты всегда неизменны.

0 голосов
/ 06 февраля 2009

Типы данных CoreFoundation (CFTypes) можно напрямую добавлять в коллекции. (Они должны быть приведены к (id) для подавления предупреждений.) Это называется "бесплатное соединение".

CGColorSpaceRef colorSpace;
NSArray *myArray = [NSArray arrayWithObject:(id)colorSpace];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...