Ios 使用Swift 3调用Objective-C方法

Ios 使用Swift 3调用Objective-C方法,ios,objective-c,swift,xcode,Ios,Objective C,Swift,Xcode,我快疯了 我试图调用Swift中的Objective-c方法,下面是StackOverflow和其他网站上的一些答案。 但是我在初始化方法时遇到了一些错误 #error : Cannot convert value of type '()' to specified type 'getEvents' 是因为斯威夫特3吗?我做错了什么 这是我的全部代码: getEvents.h #import <Foundation/Foundation.h> @interface getEven

我快疯了

我试图调用Swift中的Objective-c方法,下面是StackOverflow和其他网站上的一些答案。 但是我在初始化方法时遇到了一些错误

#error : Cannot convert value of type '()' to specified type 'getEvents'
是因为斯威夫特3吗?我做错了什么

这是我的全部代码:

getEvents.h

#import <Foundation/Foundation.h>

@interface getEvents : NSString

+(NSString *) objGetEvents:(NSString *)latitude andLon:(NSString *)longitude andRadius:(NSString *)radius andMeasure:(NSString *)measure;

@end
斯威夫特先生

func getEvents() {
    let getEventsObj:getEvents = getEvents()
    // error: Cannot convert value of type '()' to specified type 'getEvents'

    let jsonString = getEventsObj.objGetEvents(latitude, andLon: longitude, andRadius: searchRadius, andMeasure: searchMeasure) as NSString 
    // error: Static member 'objGetEvents' cannot be used on instance of type 'getEvents'

    print(jsonString)
}
另外,我正在扩展桥接头.h中导入“getEvents.h”


我正在尝试使用Objective-C NSData,因为NSData位于Swift上,并获取我的URL的内容,如本问题所述:

您已经声明了一个
函数,不需要创建实例

您的代码应该如下所示:

 func getEvents() {
        let jsonString = getEvents.objGetEvents(latitude, andLon: longitude, andRadius: searchRadius, andMeasure: searchMeasure) as NSString 

        print(jsonString)
    } 

您已经声明了
函数,不需要创建实例

您的代码应该如下所示:

 func getEvents() {
        let jsonString = getEvents.objGetEvents(latitude, andLon: longitude, andRadius: searchRadius, andMeasure: searchMeasure) as NSString 

        print(jsonString)
    } 

为什么您的ObjC类和Swift函数具有相同的名称?为什么类名以小写字母开头?首先要尝试将
getEvents
重命名为
getEvents
。建议键入以大写字母开头。我猜,至少问题的一部分是有一个与类型同名的方法。如果你想扩展它,你不能将NSString子类化——使用Cathegory。你看,NSString不是一个类,它是一个抽象,在运行时可以有很多不同的实现!我现在觉得自己很愚蠢!更改swift函数名修复了第一个错误。你知道第二个吗?还有,伙计,你调用你的函数getEvents()和getEvents类,所以getEvents()是getEvents()和函数的构造函数,为什么你的ObjC类和Swift函数有相同的名字?为什么类名以小写字母开头?首先要尝试将
getEvents
重命名为
getEvents
。建议键入以大写字母开头。我猜,至少问题的一部分是有一个与类型同名的方法。如果你想扩展它,你不能将NSString子类化——使用Cathegory。你看,NSString不是一个类,它是一个抽象,在运行时可以有很多不同的实现!我现在觉得自己很愚蠢!更改swift函数名修复了第一个错误。你知道第二个吗?还有,伙计,你调用你的函数getEvents()和getEvents类,所以getEvents()是getEvents()和函数的构造函数,同时谢谢你,在你改变了我的Swift函数名和我的代码后,正如你建议的那样一切都正常:)谢谢你,按照您的建议更改Swift函数名和代码后,一切正常:)