JSON を使用して、共有 Google カレンダーからアプリにイベントを取得しています。2つ以上のイベントがある日もあります。ここでわかるように、日付 ({gd$when} の下にある {startDate} は長い形式 (2013-04-28T19:00:00.000+02:00) にあります)。各セクションを日付にする必要があります。 dd-MM-yy の形式で、cell.textLabel.Text は Title/$t になり、cell.detailTextLabel.Text は gd$when/startTime からの時間 (hh:mm) になります。今日の日付以降のものを表示したい。
raywenderlich.com のチュートリアルに合わせて、いろいろ試してみました。私のコードは現在このようになっていますが、まだテーブルビューコントローラーに実装していません
#define kBgQueue dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
#define googleURL [NSURL URLWithString: @"http://www.google.com/calendar/feeds/kao1d80fd2u5kh7268caop11o4%40group.calendar.google.com/public/full?alt=json"]
#import "ViewController.h"
@interface ViewController () {
IBOutlet UILabel* humanReadble;
IBOutlet UILabel* jsonSummary;
}
@end
@implementation ViewController
-(void)viewDidLoad
{
[super viewDidLoad];
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL:googleURL];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}
- (void)fetchedData:(NSData *)responseData {
//parse out the JSON data
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSArray* feed = [json valueForKeyPath:@"feed.entry"];
NSLog(@"feed: %@", feed);
for (int i=0; i<[feed count]; i++) {
NSDictionary* event = [feed objectAtIndex:i];
NSString* eventTitle = [event valueForKeyPath:@"title.$t"];
NSLog(@"Title: %@", eventTitle);
}
}
@end
特に日付からセクションを作成する方法について、誰かがポインタを与えることができれば、それは非常に高く評価されます