Shared Instance это процесс, с помощью которого вы можете получить доступ к экземпляру класса или объекта класса в любом месте проекта. Основная идея заключается в том, чтобы возвращать один и тот же объект каждый раз при вызове метода, чтобы значения/свойства, хранящиеся в экземпляре, можно было использовать в любом месте приложения.
Это может быть сделано в 2 простой процесс следующим образом: -
1) Использование статической переменной инициализируется только один раз
@implementation SharedInstanceClass
static SharedInstanceClass *sharedInstance = nil;
+ (id)sharedInstanceMethod
{
@synchronized(self) {
if (sharedInstance == nil) {
sharedInstance = [SharedInstanceClass new];
}
}
return sharedInstance;
}
@end
2) Использование НОД-х: -
+ (id)sharedInstance{
static dispatch_once_t onceToken;
static SharedInstanceClass *sharedInstance = nil;
dispatch_once(&onceToken, ^{
sharedInstance = [SharedInstanceClass new];
});
return sharedInstance;
}
Эти следует назвать: -
SharedInstanceClass *instance = [SharedInstanceClass sharedInstance];
Таким образом, каждый раз один и тот же экземпляр будет возвращен из функции, а значения, установленные для свойств, будут сохранены и могут использоваться в любом месте приложения.
С уважением,
Я не понимаю :( – Birdkingz
Ну, пожалуйста, предоставьте нам некоторую более подробную информацию, где проблема лежит и то, что вы точно не понимаете :) – Lepidopteron
Хорошо, у меня есть 2 файла - ARViewController. ч/м. - CustomARFunction .h /.m Внутри ARViewController.h у меня есть одно имя переменной строки ARName. Что я хочу на самом деле внутри CustomARFunction.m, мне нужно обратиться к ARName в ARViewController.h и внести на него некоторые изменения. Значит, если я изменил ARName с помощью CustomARFunction.m, ARName в ARViewController также изменится. – Birdkingz