1

だから現在、私はこれを持っています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次に、これを実行しての Color 属性を取得しようとします。

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理解する必要があるのは、この値を取得する方法について誰かアイデアがありますか?

私の主な目標は、色属性を取得し、「16 進数」を色に変換してから、RBGクォーツを使用して色の小さな点を表示することです。現在実装しているカレンダーアプリケーションにこれを使用しています。

4

3 に答える 3

6

EKCalendar で利用できる CGColor パブリック プロパティがあります。これを使用する必要があります。Apple は、説明メソッドの出力方法をいつでも変更して、コードを壊す可能性があります。

 UIColor *calendarColor = [UIColor colorWithCGColor:calendar.CGColor];
于 2013-08-25T21:42:42.957 に答える