0

我正在尝试从我预先填充的 sqlite 数据库中获取属性(自动)的第一个字母。使用 coredata 从数据库中检索数据没有问题。但是当我尝试从我的瞬态属性中获取数据时,我收到以下错误消息:“NSFetchedResultsController ERROR: object { Autor = "\U00cdtalo Calvino"; } returned nil value for section name key path 'FirstLetter'。对象将被放置在未命名的部分”...

我在我的实体 Cit 中创建了一个名为 FirstLetter 的瞬态属性。我也为实体定义了我的类。

城市信息

@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

我无法让它工作。有没有人有解决方案???谢谢!

4

1 回答 1

0

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

因此,我会尝试从您的模型中删除瞬态属性,看看是否效果更好。

于 2011-04-25T15:45:05.323 回答