Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 通过电子邮件发送核心数据_Core Data_Core Data Migration - Fatal编程技术网

Core data 通过电子邮件发送核心数据

Core data 通过电子邮件发送核心数据,core-data,core-data-migration,Core Data,Core Data Migration,我制作了一个简单的应用程序,在CoreData中使用CoreLocation存储位置。我的问题是,现在我想通过电子邮件发送我所有的数据库核心数据,以查看和处理数据,但我不能这样做。我试图将NSManagedObjects转换为NSDictionary并枚举该字典,但它总是为空。我该怎么办 - (NSManagedObjectContext *)managedObjectContext { NSManagedObjectContext *context = nil; id delega

我制作了一个简单的应用程序,在CoreData中使用CoreLocation存储位置。我的问题是,现在我想通过电子邮件发送我所有的数据库核心数据,以查看和处理数据,但我不能这样做。我试图将NSManagedObjects转换为NSDictionary并枚举该字典,但它总是为空。我该怎么办

- (NSManagedObjectContext *)managedObjectContext
{
   NSManagedObjectContext *context = nil;
   id delegate = [[UIApplication sharedApplication] delegate];
if ([delegate performSelector:@selector(managedObjectContext)]) {
    context = [delegate managedObjectContext];
   }
return context;
}


NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"RegistoCoreData"];
self.locations = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

[self.tableView reloadData];


- (IBAction)send:(id)sender {

NSArray *keys = [[[location entity]attributesByName]allKeys];
dicionarioLocalizacoesNoCoreData = [location dictionaryWithValuesForKeys:keys];

for (NSString *valores in dicionarioLocalizacoesNoCoreData){

    NSLog(@"%@, %@", valores, [dicionarioLocalizacoesNoCoreData objectForKey:valores]);  
}

// Email Subject
NSString *emailTitle = @"Localizações";
// Email Content
NSString *messageBody = [NSString stringWithFormat:@"%@, %@",valores, [dicionarioLocalizacoesNoCoreData objectForKey:valores]];
// To address
NSArray *toRecipents = @[@"email@mail.com"];

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:emailTitle];
[mc setMessageBody:messageBody isHTML:NO];
[mc setToRecipients:toRecipents];

// Present mail view controller on screen
[self presentViewController:mc animated:YES completion:NULL];

}

因为您在评论中提到这只是供您检查数据的,所以使用电子邮件是解决问题的一种不必要的复杂方式。Xcode可以将应用程序的任何数据下载到Mac。转到管理器窗口cmd-shift-2,选择您的设备,然后选择该设备的应用程序条目。这将列出所有通过Xcode安装的应用程序。在页面底部有一个下载链接,您可以使用该链接获取所需的任何数据

如果你真的想使用电子邮件,这段代码可能会在很多地方出错。您应该使用Xcode的调试器逐步完成代码。一些可能性包括:

提取请求不返回任何值 您正在将提取结果分配给self.locations,但稍后您将尝试发送位置。从您的问题中不清楚anywhere location在哪里获得值。 不清楚获取代码的来源-您不会在方法中显示它。当您尝试发送数据时,可能尚未进行提取?
有一点相关:在代码的第一部分中调用performSelector毫无意义。您可能正在考虑respondsToSelector,这可能有点道理。在app delegate上查找上下文并不是一个很好的设计,但是像您这样调用performSelector对您没有任何帮助。

…我想通过电子邮件发送我的所有数据库CoreData以查看和处理数据。。。那么,这只是供您自己使用,用于检查和编辑数据?或者它是一个功能,当它完成后会出现在应用程序中吗?它只是我自己使用的。谢谢你的回答,我会尝试通过Xcode下载数据,但是,我不知道Xcode有这个功能。非常感谢。