Ios 使用Swift 3调用Objective-C方法
我快疯了 我试图调用Swift中的Objective-c方法,下面是StackOverflow和其他网站上的一些答案。 但是我在初始化方法时遇到了一些错误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
#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函数名和代码后,一切正常:)