2012-02-28 9 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»

и т. Д., Пока он не пройдет через все поля. Я не могу понять, почему он не будет сотрудничать. Любой совет?

ответ

2

В вашей второй for цикла в коде вы копируете & вставили выше, вы объявляя entry как NSArray объекта вместо Contacts объекта.

Изменить NSArray на Contacts, и предупреждение исчезнет.

+0

Отлично, это сработало. Большое спасибо. Как добавление, есть ли способ в этом коде для проверки нулевых записей в распечатке? Например, если я оставляю пустую запись, она не должна сохранять ее, но, похоже, я собираюсь распечатать результаты. Я могу что-нибудь сделать? –