【发布时间】:2012-01-22 15:59:43
【问题描述】:
我需要在 setter 方法中做一些额外的事情。但是这样做时会出现无限循环:
我有一个核心数据对象
@interface Transaction : NSManagedObject
@property (nonatomic, retain) NSDate * date;
@end
@implementation Transaction
@dynamic date;
-(void)setDate:(NSDate *)date
{
self.date = date;
//additional stuff omitted
}
所以,在这种情况下,我得到一个无限循环。好的,所以我在网上搜索并按以下方式修改了我的代码,并且对于每个版本,我都会遇到编译器错误
版本 1:
@interface Transaction : NSManagedObject
@property (nonatomic, retain) NSDate * date;
@end
@implementation Transaction
@dynamic date;
-(void)setDate:(NSDate *)date
{
self->date = date; //Error: Property 'date' found on object 'Transaction *'; did you mean to access it with the "." operator?
//additional stuff omitted
}
版本 2:
@interface Transaction : NSManagedObject
@property (nonatomic, retain) NSDate * date;
@end
@implementation Transaction
@dynamic date = _date; //Error: Expected ';' after @dynamic
-(void)setDate:(NSDate *)date
{
_date = date;
//additional stuff omitted
}
现在,我在问自己如何做到这一点?
【问题讨论】:
标签: ios core-data ios5 overriding setter