我正在尝试从预先填充的sqlite数据库中获取属性的第一个字母(autor)。使用coredata从数据库中恢复数据没有问题。但是当我尝试从我的transient属性中获取数据时,我收到以下错误消息:“NSFetchedResultsController ERROR:object {Autor =”\ U00cdtalo Calvino“;}返回了段名称键路径'FirstLetter'的nil值。对象将被放入未命名的部分“......
我创建了一个名为FirstLetter的瞬态属性,并在我的实体Cit中创建。我也为我定义的实体提供了课程。
@interface Cit : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * Autor;
@property (nonatomic, retain) NSString * FirstLetter;
- (NSString *) FirstLetter;
@end
#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
我无法让它发挥作用。有谁有解决方案???谢谢!
答案 0 :(得分:0)
我在模型类中做了类似的事情,但我没有在模型中创建瞬态对象。我刚刚在我的模型中添加了一个- (NSString *)sectionIndex
方法,它返回了字符串的第一个字母,和你一样。
因此,我会尝试从模型中删除transient属性,看看它是否有效。