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 საშუალებას აძლევს ობიექტების მოქნილი გაფართოებას მათი წყაროს კოდის შეცვლის გარეშე.