Sobes.tech
Junior — Middle

Da li je moguće garantovati sigurnost prilikom deklarisanja promenljivih instanci u Objective-C?

sobes.tech АИ

Одговор од АИ

У Objective-C безбедност при проглашењу променљивих примерака (instance variables) није гарантована самим језиком. Променљиве примерака су једноставно поља класе, а безбедност приступа њима зависи од тога како организујете приступ и синхронизацију.

Ако радите у окружењу са више нити, да бисте обезбедили безбедност приступа променљивим примерака, морате користити механизме синхронизације као што су @synchronized, NSLock или други алати.

Пример коришћења @synchronized за заштиту приступа променљивој:

@interface MyClass : NSObject {
    NSInteger _counter;
}
- (void)incrementCounter;
- (NSInteger)getCounter;
@end

@implementation MyClass
- (void)incrementCounter {
    @synchronized(self) {
        _counter++;
    }
}
- (NSInteger)getCounter {
    @synchronized(self) {
        return _counter;
    }
}
@end

Дакле, безбедност при проглашењу променљивих примерака није аутоматски обезбеђена, већ се постиже правилним управљањем приступом.