如何调用/访问单例方法?

时间:2016-01-12 11:34:23

标签: ios objective-c swift

以下是我想在Swift中调用的代码:

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

以下是我在Swift中调用它的方法:

Client.clientWithInfo(ServerInfo)

但它给了我以下错误:

  

clientWithInfo unavailable:使用对象构建Client(info :)

2 个答案:

答案 0 :(得分:0)

首先,您需要有桥接标题,并且在此文件中包含您的类的名称。

#import "MySingletonClass.h"

之后你应该可以调用MySingleton.sharedInstance.methodName

答案 1 :(得分:0)

首先阅读Apple的指南Using Swift with Objective-C (Swift 2.1)。有一个关于将Objective-C导入Swift的部分。

您需要创建一个Objective-C桥接头文件。当您将Swift文件添加到Objective-C项目或将Objective-C文件添加到Swift项目时,Xcode会询问您是否要添加Objective-C桥接头?

enter image description here

要将您的Objective-C代码与Swift代码一起使用,您可以导入要向swift公开的每个Objective-C头。请注意,这是针对同一目标的。

#import "MyCustomObjectiveCCodeWithSingleton.h"

来自documentation

  

此桥接头文件中列出的任何公共Objective-C标头   将在Swift中看到。 Objective-C功能将是   在没有的情况下自动在该目标内的任何Swift文件中提供   任何进口报表。使用相同的自定义Objective-C代码   您使用系统类的Swift语法。