2016-01-12 4 views
0

Вот код, который я хочу, чтобы позвонить в Swift:Как позвонить/получить доступ к методу singleton?

+ (Client*) clientWithInfo:(ServerInfo*)info { 
    return [[[Client alloc] initWithInfo:info] autorelease]; 
} 

Вот как я зову его в Swift:

Client.clientWithInfo(ServerInfo) 

Но это дает мне следующую ошибку:

clientWithInfo unavailable: use object construction Client(info:)

+5

Похож дубликатом: [? Как называют Objective-C синглтон от Swift] (http://stackoverflow.com/questions/24148464/how- to-call-an-objective-c-singleton-from-swift) –

+1

Использовать клиент (info: ServerInfo) –

+0

Это не сингл – newacct

ответ

0

Прежде всего вам нужно иметь мосты заголовков, и в этот файл входит имя вашего класса.

#import "MySingletonClass.h" 

После того, как вы должны быть в состоянии назвать MySingleton.sharedInstance.methodName

+0

Спасибо за быстрый ответ, но я уже импортировал необходимые заголовки в мой заголовочный файл. – Faisul

+0

И все еще не сработал? –

0

Начните с прочтения руководства компании Apple Using Swift with Objective-C (Swift 2.1). Существует раздел об импорте Objective-C в Swift.

Вам необходимо создать заголовочный файл с объективом-C. Когда вы добавляете Swift-файл в проект Objective-C или файл Objective-C в проект Swift, Xcode спросит вас, хотите ли вы добавить заголовок моста Objective-C?

enter image description here

Чтобы использовать код Objective-C с помощью Swift кода, который вы бы импортировать все Objective-C заголовок, который вы хотите выставить стриж. Обратите внимание, что это для той же цели.

#import "MyCustomObjectiveCCodeWithSingleton.h" 

Из documentation:

Any public Objective-C headers listed in this bridging header file will be visible to Swift. The Objective-C functionality will be available in any Swift file within that target automatically, without any import statements. Use your custom Objective-C code with the same Swift syntax you use with system classes.

Смежные вопросы