2011-06-28 13 views
0

私が書いているカレンダーアプリでは、カレンダーデータをローカルに保存しようとしています.Googlesサーバーを使用していますが、大したことはありません。 [GDataEntryCalendarEvent encodeWithCoder:]は例外を発生させます、GDataはこれをしないようです。私が使用しているコードがある -iPhone向けGDataはエンコーダを使用できません

NSMutableData *data = [[NSMutableData alloc] init]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 

int keyNum = 1; 
for (NSArray *eventsInfo in [calendarData allValues]) { 
    NSString *theKey = [NSString stringWithFormat:@"%i",keyNum]; 
    [archiver encodeObject:eventsInfo forKey:theKey]; 
    keyNum ++; 
} 

[archiver finishEncoding]; 

bool success = [data writeToFile:[Directories calendarDataFilePath] atomically:YES]; 

[archiver release]; 
[data release]; 

bool success = [calendarData writeToFile:[Directories calendarDataFilePath] atomically:YES]; 
NSLog(@"Calendar Data saved: %@",success); 

と私は取得しています誤りがある - [GDataEntryCalendarEvent encodeWithCoder:]:認識されていないセレクタはインスタンスに任意のヘルプ0x4d60b40

感謝を送りました!

答えて

1

NSKeyedArchiverを使用してアーカイブ可能なオブジェクトの場合、そのクラスはNSCodingプロトコルに準拠する必要があります。 GDataEntryCalendarEventはそれに準拠していないため、このエラーが発生しています。この方法を使用してコンテンツを保存することはできません。

GDataEntryCalendarEventのインスタンスをローカルに保存するには、this threadを参照してください。これは、ファイルに書き出すことができるXMLに変換する方法を示しています。

+0

リンクに感謝しています.GDataの資料を見つけるのが難しいと思っています。これは本当に便利です。 – SomaMan

関連する問題