在实体中找不到瞬态属性

时间:2011-04-22 15:17:44

标签: core-data attributes transient

我正在尝试从预先填充的sqlite数据库中获取属性的第一个字母(autor)。使用coredata从数据库中恢复数据没有问题。但是当我尝试从我的transient属性中获取数据时,我收到以下错误消息:“NSFetchedResultsController ERROR:object {Autor =”\ U00cdtalo Calvino“;}返回了段名称键路径'FirstLetter'的nil值。对象将被放入未命名的部分“......

我创建了一个名为FirstLetter的瞬态属性,并在我的实体Cit中创建。我也为我定义的实体提供了课程。

Cit.h

@interface Cit : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * Autor;
@property (nonatomic, retain) NSString * FirstLetter;
- (NSString *) FirstLetter;
@end

Cit.m

#import "Cit.h"
@implementation Cit
@dynamic Autor;
@dynamic FirstLetter;

- (NSString *) FirstLetter {
    NSLog(@"doing");
    [self willAccessValueForKey:@"FirstLetter"];
    NSString * initial = [[self valueForKey:@"Autor"] substringToIndex:1];
    [self didAccessValueForKey:@"FirstLetter"];
    return initial;
}
@end

我无法让它发挥作用。有谁有解决方案???谢谢!

1 个答案:

答案 0 :(得分:0)

我在模型类中做了类似的事情,但我没有在模型中创建瞬态对象。我刚刚在我的模型中添加了一个- (NSString *)sectionIndex方法,它返回了字符串的第一个字母,和你一样。

因此,我会尝试从模型中删除transient属性,看看它是否有效。