29253


swiftでiOSのカレンダーアプリを作成しています。

カレンダーの一覧のデータを取得しようとしているのですが、  
calendarIdentifier、title、typeは簡単に取得できたのですが、  
その他のcolorやcgColor、allowsModifyなどは変数に代入できません。

[code]

    let eventStore = EKEventStore()
    var calendars: [EKCalendar]?
    calendars = eventStore.calendarsForEntityType(.Event)
    let Cal01 = iOSCalendarData()
    let calendarIdentifier = calendars![0].calendarIdentifier
    let title = calendars![0].title
    let type = calendars![0].type
    
[/code]

このような形で値を取得しようとしているのですが、  
colorやcgColor、allowsModifyが取得できません。

ためしにEKCalendarを表示してみると、

[code]

    EKCalendar <0x175271b0> {title = 睡眠; type = CalDAV; allowsModify = YES; color = #FF2968;}
    
[/code]

このように、ColorやallowsModifyの値を見ることができます。

どのようにすれば、colorやcgColor、allowsModifyの値を取得することができるのでしょうか？  
よろしくお願いします。


CC BY-SA 3.0
2016-09-29T18:58:30.527
29252
2016-09-30T01:08:20.677
18978
question
swift ios xcode
EKCalendarでcolorやcgColorなどを取得したい


アクセスするためのプロパティ名が違っているのではないでしょうか。  
AppStoreに、Dashという各種言語のリファレンス・スニペットツールがありまして、  
その中のiOSのドキュメントを見ると、Swift2.2においては、

cgColorと呼ばれているものについては、`var CGColor: CGColor`  
allowsModifyと呼ばれているものについては、`var allowsContentModifications: Bool { get }`

というプロパティ名が設定されているようなので、

[code]

    let color = calendars![0].CGColor
    let allowsModify = calendars![0].allowsContentModifications
    
[/code]

でアクセス出来ると思います。

Swift3に置いてはコメントでLe Pere d'OOさんが指摘くださったように、

[code]

    let color = calenders![0].cgColor
    
[/code]

でアクセス出来ると思います。


CC BY-SA 3.0
2016-09-29T20:20:31.650
29253
2016-09-30T01:08:20.677
2016-09-30T01:08:20.677
14745
14745
29252
answer