【发布时间】:2012-12-03 23:51:02
【问题描述】:
我有一个基本的UITableView,我可以在其中使用 Core Data 添加项目以及在需要时删除。
假设我向UITableView 添加了 5 个项目。我还想在另一个视图上显示这五个项目,最好是 PDF。
完成此任务的最佳方法是什么?
我也在尝试使用NSUserDefaults,但出现的唯一值是最后输入的值。
这是使用的一些主要代码。任何建议表示赞赏!
这是来自我输入文本的UIViewController:
-(NSManagedObjectContext * )managedObjectContext
{
return [(AppDelegate *) [[UIApplication sharedApplication] delegate] managedObjectContext];
}
-(void)saveButtonTapped:(id)sender
{
[self.managedObjectContext save:nil];
if (_majorTextField.text == nil)
{
_majorString = @"";
}
else
{
_majorString = [[NSString alloc] initWithFormat:@"%@", _majorTextField.text];
self.task.title = self.majorTextField.text;
NSUserDefaults * majorDefault = [NSUserDefaults standardUserDefaults];
[majorDefault setObject:_majorString forKey:@"major"];
}
[self.navigationController popViewControllerAnimated:YES];
}
这里是我在我的 PDF 中添加文本的地方:
+(void)createPDF:(NSString*)filePath
{
// Create the PDF context using the default page size of 612 x 792.
UIGraphicsBeginPDFContextToFile(filePath, CGRectZero, nil);
// Mark the beginning of a new page.
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);
NSUserDefaults * majorDefault = [NSUserDefaults standardUserDefaults];
NSString * majorString = [majorDefault stringForKey:@"major"];
[PDFRenderer drawText:majorString inFrame:CGRectMake(35, 190, 300, 50) fontName:@"TimesNewRomanPSMT" fontSize:14];
UIGraphicsEndPDFContext();
}
【问题讨论】:
-
NSUserDefaults 每个键只存储一个值。因此,您每次都有效地覆盖了为“主要”键存储的值。无论如何,您应该查看 NSFetchRequest 以获取您需要的记录,遍历结果并以这种方式创建您的 PDF。见这里mobile.tutsplus.com/tutorials/iphone/iphone-core-data
标签: objective-c uitableview core-data uiviewcontroller nsstring