2016-08-09 3 views
0

У меня есть два фрагмента кода, сначала не удается выполнить второй работы ... не могу понять, почему.Ошибка преобразования UIColor в строку, почему?

UIColor _color = [UIColor blackColor]; 

NSString * something1 = [[_color CIColor] stringRepresentation]; // Fails NSString * something = [[CIColor colorWithCGColor: [_ color CGColor]] stringRepresentation]; // works

Может ли кто-нибудь объяснить?

+0

Что вы подразумеваете под «Fails» и «Works»? Пожалуйста, покажите результат. – Droppy

ответ

0

От UIColor документации компании Apple here, это потому, что свойство CIColor:

бросает исключение, если цвет объекта не был инициализирован с цветом основного изображения.

В этом случае _color не инициализируется цветом основного изображения. Вы можете видеть, что это верно, потому что даже просто [_color CIColor] выдает сообщение об ошибке.

Ваш другой случай работает, потому что вы инициализируете совершенно новый CIColor с свойством CGColor _color, который из документации всегда разрешается на CGColor. Итак, в другом случае CIColor успешно создан, и вы можете называть его stringRepresentation.

+0

_color установлен в [UIColor blackColor], вы хотите сказать, что этого недостаточно, и мне нужно также инициализировать свойство CIColor? – unmircea

+0

Нет, свойство readonly, вы не можете его инициализировать. В документации указано, что _UIColor_ _object_ должен быть инициализирован цветом Core Image. Это означает, что вы должны установить '_color' в' [UIColor colorWithCIColor: Some_CIColor] 'или, в другом случае,' CGColor' также работает. – Carter

+0

Итак, если я инициализирую _color = [UIColor blackColor], этого недостаточно, чтобы иметь возможность использовать свойство CIColor? – unmircea

Смежные вопросы