0

Possible Duplicate:
Fetching all data from an Entity and printing only displays the last record

Good Morning people ,

I'm having some trouble with a fetchrequest that i have set up to get all of the data in a particular Core Data Entity and placing each record into a string , my code can be found below :

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];

    [fetchRequest setEntity:entity];
    NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];


    NSLog(@"=============================================");
    NSLog(@"Generating Data To Be Sent");
    for (NSManagedObjectContext * info in fetchedObjects) 

    {

        NSLog(@"Client Name: %@", [info valueForKey:@"clientName"]);
        NSLog(@"Client Account Number: %@", [info valueForKey:@"clientAccountNumber"]); 
        NSLog(@"Product Code: %@", [info valueForKey:@"productCode"]);
        NSLog(@"Product Price: %@", [info valueForKey:@"productPrice"]);
        NSLog(@"Product Quantity: %@", [info valueForKey:@"productQuantity"]);
        NSLog(@"Order Total: %@", [info valueForKey:@"orderTotal"]);
        NSLog(@"Order ID : %@", [info valueForKey:@"orderID"]); 
        NSLog(@"Transaction ID: %@", [info valueForKey:@"transactionID"]);
        NSLog(@"Sales Rep ID : %@", [info valueForKey:@"salesRepresentativeID"]);

    }

    NSString * printedData;
    NSString * formattedData;

    NSString * clientName;
    NSString * clientAccount;
    NSString * productCode;
    NSString * productQuantity;
    NSString * productPrice;
    NSString * orderTotal;
    NSString * orderID;
    NSString * transactionID;
    NSString * salesRepID;



    for(NSManagedObject * info in fetchedObjects)

    {

        clientName = [info valueForKey:@"clientName"];
        clientAccount =  [info valueForKey:@"clientAccountNumber"]; 
        productCode =  [info valueForKey:@"productCode"];
        productPrice =  [info valueForKey:@"productPrice"];
        productQuantity = [info valueForKey:@"productQuantity"];
        orderTotal =  [info valueForKey:@"orderTotal"];
        orderID = [info valueForKey:@"orderID"]; 
        transactionID = [info valueForKey:@"transactionID"];
        salesRepID = [info valueForKey:@"salesRepresentativeID"];


        formattedData = [NSString stringWithFormat:@"|%@|%@|%@|%@|%@|%@|%@|%@|%@|\n",clientName,clientAccount,productCode,productQuantity,productPrice,orderID,transactionID,orderTotal,salesRepID];

        printedData = formattedData;

    }

    NSLog(@"=============================================");
    NSLog(@"Data Generated");
    NSLog(@"%@",printedData);
    [fetchRequest release];

    NSMutableArray *recipients = [[NSMutableArray alloc] initWithCapacity:1];
    [recipients addObject:toEmail.text];

    MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
    controller.mailComposeDelegate = self;
    [controller setSubject:toSubject.text];
    [controller setMessageBody:printedData isHTML:NO];
    [controller setToRecipients:recipients];

    [self presentModalViewController:controller animated:YES];
    [controller release];

}

Now the problem is that its only printing out the LAST record it accesses , i know its stupid , but i cant rap my head around how i can fix this

Thanks people :D -Chris

Community
  • 1
  • 1

0 Answers0