我使用MBCalendarKit在我的應用程序,我能創造這樣的事件:問題創建活動使用MBCalendarKit
CKCalendarEvent* aCKCalendarEvent = [[CKCalendarEvent alloc] init];
[_infoDict setObject:@"Joint Meetings with KY State Horticulture Society, KY Vegetable Growers Association, KY Vineyard Society, and KY Farmer Market Association \nEmbassy Suites\nLexington, KY" forKey:@"Jan Joint"];
aCKCalendarEvent.date = [dateformatter dateFromString: @"01/06/2014"];
aCKCalendarEvent.title = @"Joint Meetings";
aCKCalendarEvent.info = [_infoDict objectForKey:@"Jan Joint"];
[eventsArray addObject: aCKCalendarEvent];
[_eventsDict setObject: eventsArray forKey: [NSDate dateWithDay:06 month:01 year:2014]];
我可以創建這樣在同一天的另一事件:
[_infoDict setObject:@"Washington, D.C." forKey:@"Congress Convenes"];
aCKCalendarEvent = [[CKCalendarEvent alloc] init];
aCKCalendarEvent.date = [dateformatter dateFromString: @"01/06/2014"];
aCKCalendarEvent.title = @"113th Congress Convenes";
[eventsArray addObject: aCKCalendarEvent];
[_eventsDict setObject: eventsArray forKey: [NSDate dateWithDay:06 month:01 year:2014]];
和
eventsArray = [[NSMutableArray alloc] init];
[_infoDict setObject:@"Hilton Hotel \nMemphis, TN" forKey:@"Forage & Grassland"];
aCKCalendarEvent = [[CKCalendarEvent alloc] init];
aCKCalendarEvent.date = [dateformatter dateFromString: @"01/12/2014"];
aCKCalendarEvent.title = @"American Forage & Grassland Council Annual Conference";
[eventsArray addObject: aCKCalendarEvent];
[_eventsDict setObject: eventsArray forKey: [NSDate dateWithDay:12 month:01 year:2014]];
我通過一個plist文件,其合作努力循環:然後我可以在不同的日子裏,創建另一個事件獲得所有事件以創建所有事件。我可以這樣做:
NSString *path = [[NSBundle mainBundle] pathForResource:@"Events" ofType:@"plist"];
NSDictionary *dictPri = [[NSMutableDictionary alloc]initWithContentsOfFile:path];
NSMutableArray *arrEvents = [[NSMutableArray alloc] initWithArray:[dictPri objectForKey:@"List"]];
// Loop through each item in List array of Events.plist
for (NSDictionary *dict in arrEvents)
{
NSString *titleString = nil;
NSString *date = nil;
titleString = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Title"]];
date = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Date"]];
// NSDate *dateVariable = [dateformatter dateFromString:date];
// Create events
eventsArray = [[NSMutableArray alloc] init];
aCKCalendarEvent = [[CKCalendarEvent alloc] init];
aCKCalendarEvent.title = titleString;
aCKCalendarEvent.date = [dateformatter dateFromString: date];
[eventsArray addObject: aCKCalendarEvent];
[_eventsDict setObject:eventsArray forKey:aCKCalendarEvent.date];
}
問題是,如果我在同一天有多個事件,只有最新的一個出現。我可以取出eventsArray = [[NSMutableArray alloc] init];
這一行,但是新事件不僅會在正確的日期與其他事件一起出現,而且會在其他日子顯示。所以,我想我可以在這樣的事情拋來檢查,如果我需要一個線,然後將事件添加到eventsDict但我得到-[CKCalendarEvent isEqualToDate:]: unrecognized selector sent to instance 0xc6bb880
上if ([[eventsArray objectAtIndex:i]isEqualToDate:aCKCalendarEvent.date])
:
BOOL dateExists;
for (int i = 0; i < [eventsArray count]; i++)
{
if ([[eventsArray objectAtIndex:i]isEqualToDate:aCKCalendarEvent.date])
{
// Array already contains object with this date
dateExists = YES;
}
else
{
dateExists = NO;
}
NSLog(@"%c", dateExists);
}
if (dateExists == YES)
{
[eventsArray addObject:aCKCalendarEvent];
[_eventsDict setObject:eventsArray forKey:aCKCalendarEvent.date];
}
else
{
eventsArray = [[NSMutableArray alloc]init];
[eventsArray addObject:aCKCalendarEvent];
[_eventsDict setObject:eventsArray forKey:aCKCalendarEvent.date];
}
所以基本上,我通過需要一種方式來循環plist,並確定程序何時需要在每個新事件上啓動eventsArray。
謝謝!這解決了無法識別的選擇器問題。 – raginggoat