Junior — Middle
Je možné zaručiť bezpečnosť pri vyhlasovaní premenných inštancie v Objective-C?
sobes.tech AI
Odpoveď od AI
V Objective-C bezpečnosť pri deklarovaní inštančných premenných nie je sama o sebe garantovaná jazykom. Inštančné premenné (instance variables) sú jednoducho polia triedy a bezpečnosť prístupu k nim závisí od toho, ako organizujete prístup a synchronizáciu.
Ak pracujete v prostredí s viacerými vláknami, na zabezpečenie bezpečnosti prístupu k inštančným premenným musíte použiť mechanizmy synchronizácie, ako je @synchronized, NSLock alebo iné prostriedky.
Príklad použitia @synchronized na ochranu prístupu k premennej:
@interface MyClass : NSObject {
NSInteger _counter;
}
- (void)incrementCounter;
- (NSInteger)getCounter;
@end
@implementation MyClass
- (void)incrementCounter {
@synchronized(self) {
_counter++;
}
}
- (NSInteger)getCounter {
@synchronized(self) {
return _counter;
}
}
@end
Takže, bezpečnosť pri deklarovaní inštančných premenných nie je automatická, ale je dosiahnutá správnou správou prístupu k nim.