2012-02-28 3 views
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ループでは

答えて

2

、。

NSArrayからContactsに変更すると警告が表示されなくなります。

+0

優れています。どうもありがとう。付録として、そのコードには、プリントアウトのヌルエントリをチェックする方法がありますか?たとえば、空白の項目を残しておくと、その項目は保存されませんが、結果を印刷するときに表示されます。何か私にできることはありますか? –