Предполагая, что под 'view' вы на самом деле имеете в виду 'экземпляр UIView':
Представления сохраняют свои подпредставления, и поэтому, если представление освобождается, его подпредставления освобождаются, и их количество уменьшается на единицу.
Я не уверен, но я думаю иерархия представления реализована так:
@interface UIView : UIResponder {
NSArray *_subviews;
}
@property(nonatomic, retain) NSArray *subviews;
@end
@implementation UIView
@synthesize subviews;
- (void)dealloc {
[subviews release];
[super dealloc];
}
@end
Вы можете примерно сказать, что NSObject объявляет целое число без знака, которое является счетчиком сохранения, например:
unsigned retainCount;
Тогда это будут реализации -[id<NSObject> retain]
и -[id<NSObject> release]
:
- (void)retain {
retainCount++;
}
- (void)release {
retainCount--;
if (retainCount == 0) {
[self dealloc];
}
}