我正在使用 Mogenerator 为我的 CoreData 构建类,我喜欢它基于 CoreData 属性生成的属性名称,如下所示_TAGUser
:
extern const struct TAGUserAttributes {
__unsafe_unretained NSString *displayName;
__unsafe_unretained NSString *email;
} TAGUserAttributes;
@interface _TAGUser : NSManagedObject
@property (nonatomic, strong) NSString* displayName;
@property (nonatomic, strong) NSString* email;
@end
这在实现文件中:
const struct TAGUserAttributes TAGUserAttributes = {
.displayName = @"displayName",
.email = @"email",
};
@implementation _TAGUser
@end
现在在子类TAGUser
中,我将此属性添加到头文件中:
@interface TAGUser : _TAGUser {}
@property (strong, nonatomic, readonly) NSString *firstLetterOfDisplayName;
@end
这对实现文件:
@implementation TAGUser
- (NSString *)firstLetterOfDisplayName {
return ((self.displayName != nil && self.displayName.length > 0) ?
[self.displayName substringToIndex:1].uppercaseString :
nil);
}
@end
有没有一种方法可以扩展或添加到结构TAGUserAttributes
中,以便我可以在我的代码中的其他任何地方调用TAGUserAttributes.firstLetterOfDisplayName
KVO、节映射NSFetchedResultsController
等?