Получить справочник цветов 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)