Получить справочник цветов EkEvent

Так что в настоящее время у меня есть это EkEvent:

EKEvent <0xb12dc30> {EKEvent <0xb12dc30> {title = Mitchell Smith’s Birthday; location = (null); calendar = EKCalendar <0x9a532c0> {title = Birthdays; type = Birthday; allowsModify = NO; color = #8295AF;}; alarms = (null); URL = (null); lastModified = (null); timeZone = (null)}; location = (null); startDate = 2013-08-13 07:00:00 +0000; endDate = 2013-08-14 06:59:59 +0000; allDay = 1; floating = 1; recurrence = EKRecurrenceRule <0xb2199e0> RRULE FREQ=YEARLY;INTERVAL=1; attendees = (null)}

Я успешно разбираю EKCalendar Ключ делает это:

NSLog(@"%@", [event valueForKey:@"calendar"]);

Какие отпечатки:
EKCalendar <0x9a532c0> {title = Birthdays; type = Birthday; allowsModify = NO; color = #8295AF;}

Затем я пытаюсь получить EKCalendarЦвет атрибута делает это:

NSLog(@"%@", [[event valueForKey:@"calendar"] valueForKeyPath:@"color"]);

Какие отпечатки:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<EKCalendar 0x9a532c0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key color.'

Я могу получить другие атрибуты EKCalendar, но когда я получаю доступ к color атрибут, я получаю сбой КАЖДЫЙ раз:(. Так this class is not key value coding-compliant for the key color это то, что мне нужно понять, у кого-нибудь есть идеи о том, как получить это значение?

Моя главная цель - получить атрибут цвета, преобразовать шестнадцатеричное число в RBG затем используйте кварц, чтобы отобразить небольшую точку цвета. Я использую это для приложения календаря, которое я сейчас реализую.

3 ответа

Решение

На EKCalendar есть публичная собственность CGColor. Вы должны использовать это. Apple может изменить способ их описания, распечатывающий ваш код.

 UIColor *calendarColor = [UIColor colorWithCGColor:calendar.CGColor];

Согласно документу EKCalendar нет color свойство, к которому вы можете получить доступ, но есть CGColor собственность, к которой вы можете получить доступ.

@property(nonatomic) CGColorRef CGColor

Быстрая версия атомкирка. Я просто использовал в мае 2018 года, и он работает.

От ссылки на событие:

let eventCalendarColor = UIColor.init(cgColor: event.calendar.cgColor)

Из календаря исх.:

let calendarColor = UIColor.init(cgColor: calendar.cgColor)
Другие вопросы по тегам