如何将消息导出到文本文件中。仅限选定用户

时间:2016-07-22 15:20:53

标签: ios objective-c swift cocoapods xmppframework

这是我收到的所有消息的代码但是我希望只将选定的消息放入文本文件..

-(void)testMessageArchiving
{
    XMPPMessageArchivingCoreDataStorage *storage = [XMPPMessageArchivingCoreDataStorage sharedInstance];
    NSManagedObjectContext *moc = [storage mainThreadManagedObjectContext];
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject"
                                                         inManagedObjectContext:moc];
    NSFetchRequest *request = [[NSFetchRequest alloc]init];
    [request setEntity:entityDescription];
    NSError *error;
    NSArray *messages = [moc executeFetchRequest:request error:&error];

    [self print:[[NSMutableArray alloc]initWithArray:messages]];
}

2 个答案:

答案 0 :(得分:0)

如果不了解您的CoreData架构,很难回答您的问题,但一般情况下:您正在请求所有邮件。 您应该创建一个NSFetchRequest,它只返回您要打印的消息。

答案 1 :(得分:0)

XMPPMessageArchivingCoreDataStorage *storage = [XMPPMessageArchivingCoreDataStorage sharedInstance];
    NSManagedObjectContext *moc = [storage mainThreadManagedObjectContext];
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject"
                                                         inManagedObjectContext:moc];
    NSFetchRequest *request = [[NSFetchRequest alloc]init];
    [request setEntity:entityDescription];
    NSError* error;
    NSString *predicateFrmt = @"bareJidStr == %@";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateFrmt,[ _user valueForKey:@"jabberId"]];
request.predicate = predicate;


    NSArray *data = [moc executeFetchRequest:request error:&error];