我的CoreData存储不起作用?

时间:2014-03-27 23:28:46

标签: ios objective-c core-data

我开始在iPhone编程和我自己制作我的第一个CoreData应用程序,在数据Im存储是一种颜色,两个字符串,但现在我只读一个字符串和颜色,但这是行不通的,继承人我的代码,所以你可以帮助我,谢谢。

保存信息的方法:

+(void)insertNewAccountCard:(NSString *) title
                withcontent:(NSString *) content
                  withcolor:(NSData *) color{
    [MagicalRecord saveUsingCurrentThreadContextWithBlock:^(NSManagedObjectContext *localContext) {

        Note *note = [Note MR_createEntity];
        note.titulo = title;
        note.content = content;
        note.color = color;

        } completion:^(BOOL success, NSError *error) {
        NSLog(@"Accounts:%d", [CoreDataBase numberofNotes]);
    }];
}
+(NSInteger) numberofNotes{

    return [Note MR_countOfEntities];
}

在我的实体类中(注意)color显然是NSData。

然后我存储信息:

- (IBAction)DoneAction:(id)sender {
    //[self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationFade];
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:color];
    [CoreDataBase insertNewAccountCard:self.titleTextfield.text withcontent:nil withcolor:data];
}
- (IBAction)gray:(id)sender {
    color = [UIColor grayColor];
    NSLog(@"%@", color);
}

然后当我读到它时:

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{

    return [CoreDataBase numberofNotes];

}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    NotesCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
    Note *notes = self.allNotes[indexPath.row];
    UIColor *color = (UIColor *)[NSKeyedUnarchiver unarchiveObjectWithData:notes.color];
    cell.noteView.backgroundColor = color;
    cell.titleCellLabel.text = notes.titulo;

    return cell;
}

因此集合视图看起来完全是空的,但是如果我将UIColor放到单元格视图背景中,我可以看到笔记数量的实际计数但没有我选择的文本和视图颜色,所以什么错了?我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)