Sobes.tech
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 объекттерди алардын түпкү кодун өзгөртпөстөн ийкемдүү кеңейтүүгө мүмкүндүк берет.