Доступ к singleton sharedInstance в классе Objective-C из класса Swift в комбинированном проекте - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть проект Objective-C, в который я добавил класс Swift.Я хотел бы получить доступ к общему экземпляру класса Objective C из моего кода Swift, но я не могу найти примеров того, как это сделать.Вот пара примеров кода в Objective-C для доступа к совместно используемым экземплярам, ​​которые я хотел бы выполнить из Swift:

//to get property
self.managedObjectContext = [myModel sharedInstance].managedObjectContext;

//to get a string returned by a method in the sharedInstance

NSString *aUser = [[referenceClass  sharedInstance] getUserName];

В заголовочном файле Objective C для синглтона у меня есть

+ (referenceClass*)sharedInstance;

Я импортировал необходимые классы, такие как referenceClass, в мой файл заголовка моста, но как мне получить строку, используя Swift?

Что-то вроде: (псевдокод)

 var username: String = referenceClass.sharedInstance().getUserName()

Заранее спасибо за любые предложения.

1 Ответ

0 голосов
/ 17 сентября 2018

Объявите вашу ссылочную переменную класса singleton следующим образом

var singletonReference = YourSingletoneClass.sharedInstance() as! YourSingletoneClass

и получите значение доступа, используя ссылочную переменную

var username: String = singletonReference.getUserName()

В соответствии с вашим примером вы также можете использовать вот так

var username: String = (referenceClass.sharedInstance() as! referenceClass).getUserName()

Примечание : если вы хотите, чтобы ваша ссылочная переменная была объявлена ​​классом глобально

...