私のアプリはユニバーサル アプリで、アプリの一部でカレンダーにイベントを追加する必要があります。私のコードは iOS 4.x および 5.x では正常に動作しますが、i 6.0 では日付フォーマッタを使用して文字列を日付に変換すると返されます以下の iOS 6.0 の日付の null はコードです:-
-(IBAction) addToPlanBttnClick:(id) sender
{
addToPlanBttn.tag =1;
EKEventEditViewController *addController = [[EKEventEditViewController alloc] initWithNibName:nil bundle:nil];
EKEvent *newEvent = [EKEvent eventWithEventStore:eventStore];
// set event title start date and end date
NSString *str = conference.SeminarDate;
str = [[str stringByAppendingString:@" "] stringByAppendingString:conference.StartTime];
NSLog(@"%@",str);
newEvent.title = conference.Subject;
//NSString *pointDate = [[[NSString alloc] initWithString:dateLbl.text] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
// You can use current date or any other
//NSString *str1 = [[NSString alloc] initWithString:[[pointDate stringByAppendingString:@", 2012 "]stringByAppendingString:[str substringWithRange:NSMakeRange(0, 5)]]];
//NSLog(@"stri date----%@", str1);
NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
NSDateFormatter* df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"EEEE dd MMMM yyyy HH:mm"];
NSDate* startDate = [df dateFromString:str];
//[NSDate date];
NSLog(@"stri date----%@", startDate);
newEvent.startDate = startDate;
[newEvent setNotes:conference.BriefDescription];
NSString *str1 = conference.SeminarDate;
str1 = [[str1 stringByAppendingString:@" "] stringByAppendingString:conference.EndTime];
NSLog(@"%@",str1);
NSDate *endDate = [df dateFromString:str1];
NSLog(@"stri date----%@", endDate);
newEvent.endDate = endDate;
addController.eventStore = self.eventStore;
addController.event = newEvent;
addController.editViewDelegate = self;
[self presentViewController:addController animated:YES completion:nil];
}
私の日付文字列は TUESDAY 12 FEBRUARY 2013 10:00 であり、日付フォーマッタは[df setDateFormat:@"EEEE dd MMMM yyyy HH:mm"];
コードに示されているとおりであり、文字列からの結果の日付は次のとおりです:-2013-02-12 04:30:00 +0000 シミュレータおよび iPad
しかし、iOS 6.0ではnullです。どこが間違っているのか教えてください。