NSArray может не отвечать (ошибка экспорта в код CSV) - PullRequest
0 голосов
/ 28 февраля 2012

У меня проблемы с попыткой экспортировать сохраненные данные из CoreData в файл CSV. Моя конечная цель - сохранить информацию в 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'

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

1 Ответ

2 голосов
/ 28 февраля 2012

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

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

...