【发布时间】:2011-06-08 07:34:24
【问题描述】:
我可能只是在这里有点懒惰,但请耐心等待。这是我的情况。我有一个具有两个非原子保留属性的类。比方说:
@property (nonatomic, retain) UITextField *dateField;
@property (nonatomic, retain) NSDate *date;
我在实现中按预期合成它们。我想要发生的是,每当调用 date 的 setter 时,它也会对 dateField 执行某些操作(即,它将 dateField 上的 text 属性设置为日期格式良好的版本)。
我意识到我可以通过执行以下操作手动覆盖我的实现中的日期设置器:
- (void) setDate:(NSDate *)newDate {
if (date != newDate) {
[date release];
date = [newDate retain];
// my code to touch the dateField goes here
}
}
如果我可以让 Objective C 处理保留/释放周期,但仍然能够“注册”(因为没有更好的术语)将在保留/释放/之后调用的自定义处理程序,那就太棒了设置发生。我的猜测是这是不可能的。不过,我的 google-fu 没有给出任何答案,所以我想我会问。
【问题讨论】:
标签: iphone objective-c properties