我試圖獲取所有從一個特定的核心數據實體的數據,每個記錄放入一個字符串。但是,以下代碼僅打印它訪問的最後一條記錄。我究竟做錯了什麼?擷取來自實體的所有數據,並僅打印顯示的最後一條記錄
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];
行'的NSLog(@ 「%@」,printedData);'應該是for循環 – Felix 2012-03-21 13:51:42
確定,但那只是一個NSLog的,如果你能看到printedData變量在[控制器setMessageBody內:printedData isHTML:NO]; ,那什麼給我的問題,只有1個記錄被打印 – 2012-03-21 14:08:25
字對字的重複[這個問題](http://stackoverflow.com/questions/9806668/printing-the-contents-of-a-fetchrequest)由同樣的問題。 – FluffulousChimp 2012-03-21 15:02:45