2010-11-29 35 views
-1

编辑: 我已经改变了NSPredicate作为建议,以便我的提取代码看起来像这样。已经打印到的UITextView这样,当我按下加载它吐出来的是以下几点:CoreData Basics帮助

<NSManagedObject: 0x1c7cf0>(entity: DatedText; id: 0x1420c0 <x - coredata://B52D4F88-0210-4AE2-9DA6-C05ED64FE389/DatedText/p12> ; data: <fault>) 

因此,无论它的,因为它没有保存/加载正确或我试图让没有得到任何数据资料加载结果到UITextView的方式不正确。有任何想法吗?

NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *testEntity = [NSEntityDescription entityForName:@"DatedText" inManagedObjectContext:self.managedObjectContext]; 
    [fetch setEntity:testEntity]; 
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"dateSaved == %@", datePicker.date]; 
    [fetch setPredicate:pred]; 

    NSError *fetchError = nil; 
    NSArray *fetchedObjs = [self.managedObjectContext executeFetchRequest:fetch error:&fetchError]; 
    if (fetchError != nil) { 
     NSLog(@" fetchError=%@,details=%@",fetchError,fetchError.userInfo); 
     return nil; 
    } 
    NSString *object = [NSString stringWithFormat:@"%@",[fetchedObjs objectAtIndex:0]]; 
    noteTextView.text = object; 

我一直有各种问题的工作如何使用核心数据,所以我回到基础知识,基于新窗口的基于ipad项目使用核心数据。

我添加了一个视图和一些不起作用的代码,嘿嘿。我基本上试图保存一些文本到一个日期,然后当回到那个日期,以前保存的文本将再次显示。

+0

哪位不工作?它崩溃了吗?或者只是没有做你期望的事情?您是否尝试过使用调试器并设置断点?即在采取各种步骤之后设置断点,然后查看变量并确保它们包含您期望的内容。把你的发现放在这里,我会回来看看。 – MCannon 2010-11-29 18:01:40

+0

先生项目:http://www.mediafire.com/?1x77zf8x21i84d1随意去看看。我发现它在到达时崩溃:``loadNotes``中的`NSArray * fetchedObjs = [self.managedObjectContext executeFetchRequest:fetch error:&fetchError];`` – 2010-11-29 19:09:02

+0

不要只是将人们指向您的项目(再次),描述您遇到的问题或您对此的疑问。 – 2010-11-30 02:23:46

回答

2

我检查了你的项目,除了必须综合CoreData属性外,我也注意到你正在试图为你的获取谓词分配一个NSArray,但实际上它需要一个NSPredicate对象。如果你想设置超过1个谓词你应该做的是在你的谓语字符串即

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(dateSaved == %@) AND (dateSaved <= %@", datePicker.date, [NSDate date]]; 

干杯, 罗格

0

你很可能会崩溃,因为你的伊娃是managedObjectContext_,但你使用的是self.managedObjectContext。即使您提供自定义getter,您也需要综合核心数据ivars。

0

你设置

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(dateSaved == %@)", datePicker.date]; 
[fetch setPredicate:pred]; 

:你应该使用这个你的NSFetchRequest对NSArray的谓词,而不是NSPredicate。

如果你发布了实际崩溃,它可能会说像未知选择器的东西被发送到NSArray的实例。