0
CoreDataから保存されたデータをCSVファイルにエクスポートしようとしています。私の最終的な目標は、情報をCSVに保存して電子メールで添付することです。ここでは、データをエクスポートするための私のコードは次のとおりです。NSArrayが応答しない(CSVコードエラーへのエクスポート)
- (IBAction)exportData
{
mieleWasherAppDelegate *exportObjects = [[mieleWasherAppDelegate alloc] init];
[exportObjects managedObjectContext];
NSFetchRequest * allContacts = [[NSFetchRequest alloc] init];
[allContacts setEntity:[NSEntityDescription entityForName:@"Contacts" inManagedObjectContext: [exportObjects managedObjectContext]]];
// [allContacts setIncludesPropertyValues:YES]; //only fetch the managedObjectID
NSError * error = nil;
NSArray * entries = [[exportObjects managedObjectContext] executeFetchRequest:allContacts error:&error];
[allContacts release];
//error handling goes here
NSMutableArray *array = [[NSMutableArray alloc] init];
for (Contacts * entry in entries)
{
NSLog(@"Salutation: %@", entry.Salutation);
NSLog(@"First Name: %@", entry.FirstName);
NSLog(@"Last Name: %@", entry.LastName);
NSLog(@"Company Name: %@", entry.CompanyName);
NSLog(@"Email Address: %@", entry.EmailAddress);
NSLog(@"Phone Number: %@", entry.PhoneNumber);
[array addObject:entry];
}
NSError *saveError = nil;
[[exportObjects managedObjectContext] save:&saveError];
//more error handling here
// Export to CSV code
NSString *separator = @", ";
NSString *csv = @"";
for (NSArray *entry in entries)
{
csv = [NSString stringWithFormat:@"%@%@%@%@%@\n", csv, [entry Salutation],
separator, [entry FirstName],
separator, [entry LastName],
separator, [entry CompanyName],
separator, [entry EmailAddress],
separator, [entry PhoneNumber]];
}
//If you want to store in a file the CVS
//[csv writeToFile:pathToFile atomically:YES];
//If you want to store in a file the CVS
//[cvs writeToFile:pathToFile atomically:YES];
}
申し訳ありませんが、フォーマットは少し厄介ですが、それは、以下の(繰り返し)の警告を返していた場合:
にNSArrayは「-Salutation」
に応答しないことがあります
などがすべてのフィールドを通過するまで。なぜ私は協力しないのか分かりません。何かアドバイス?あなたはNSArray
オブジェクトの代わりに、Contacts
対象としてentry
を宣言しているあなたは上記の貼り付け&をコピーしたコードでは、2番目のfor
ループでは
優れています。どうもありがとう。付録として、そのコードには、プリントアウトのヌルエントリをチェックする方法がありますか?たとえば、空白の項目を残しておくと、その項目は保存されませんが、結果を印刷するときに表示されます。何か私にできることはありますか? –