Junior — Middle
Side Table концепциясын жана анын колдонулушун түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Side Table — бул iOS (Objective-C жана Swift) ичинде объекттерге динамикалык мүнөздөмөлөрдү кошуу үчүн колдонулган жардамчы маалымат түзүмү, ал алардын түпкү классын өзгөртпөйт.
Ал колдонулат, эгерде сиз бар класстын функционалдуулугун кеңейтүүнү кааласаңыз, мисалы, объектке жаңы мүнөздөмө кошуу, бирок подкласс түзүү мүмкүнчүлүгү же каалоо болбосо.
Side Tableдын ишке ашырылышында адатта байланышкан объекттер (associated objects) механизми колдонулат, ал ишке ашыруу учурунда объектке кошумча маалыматтарды байлоого мүмкүндүк берет.
Objective-Cде колдонуу мисалы:
#import <objc/runtime.h>
static char kAssociatedObjectKey;
@implementation NSObject (SideTable)
- (void)setCustomProperty:(NSString *)value {
objc_setAssociatedObject(self, &kAssociatedObjectKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (NSString *)customProperty {
return objc_getAssociatedObject(self, &kAssociatedObjectKey);
}
@end
Ошентип, Side Table объекттерди алардын түпкү кодун өзгөртпөстөн ийкемдүү кеңейтүүгө мүмкүндүк берет.