如何在Objective-C中使用Swift闭包
我在产品中创建了一个swift文件。我的swift文件如下:如何在Objective-C中使用Swift闭包,objective-c,swift,closures,block,Objective C,Swift,Closures,Block,我在产品中创建了一个swift文件。我的swift文件如下: import UIKit typealias handler = (String?, Bool?)->Void @objc class godness: NSObject { var test:String? func sad()->String? { test = "adfasdfaf" return test } func testX(sss:String?, xx:String?) { }
import UIKit
typealias handler = (String?, Bool?)->Void
@objc class godness: NSObject {
var test:String?
func sad()->String?
{
test = "adfasdfaf"
return test
}
func testX(sss:String?, xx:String?)
{
}
func godnessGetData(hander:handler)
{
var str:String = ""
let manager = AFHTTPRequestOperationManager()
let para = ["section_id":"1",
"type":"json"];
manager.POST("http://api.xxx.com/xxx.php",
parameters: para,
success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in
str = "JSONsssss: \(responseObject.description)"
hander(str, false)
},
failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
str = "Error: \(error.localizedDescription)"
})
}
}
@interface godness : NSObject
@property (nonatomic, copy) NSString * __nullable test;
- (NSString * __nullable)sad;
- (void)testX:(NSString * __nullable)sss xx:(NSString * __nullable)xx;
- (SWIFT_NULLABILITY(nonnull) instancetype)init
@end
但是在产品名称Swift.h中没有godnessGetData。
产品名称Swift.h如下所示:
import UIKit
typealias handler = (String?, Bool?)->Void
@objc class godness: NSObject {
var test:String?
func sad()->String?
{
test = "adfasdfaf"
return test
}
func testX(sss:String?, xx:String?)
{
}
func godnessGetData(hander:handler)
{
var str:String = ""
let manager = AFHTTPRequestOperationManager()
let para = ["section_id":"1",
"type":"json"];
manager.POST("http://api.xxx.com/xxx.php",
parameters: para,
success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in
str = "JSONsssss: \(responseObject.description)"
hander(str, false)
},
failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
str = "Error: \(error.localizedDescription)"
})
}
}
@interface godness : NSObject
@property (nonatomic, copy) NSString * __nullable test;
- (NSString * __nullable)sad;
- (void)testX:(NSString * __nullable)sss xx:(NSString * __nullable)xx;
- (SWIFT_NULLABILITY(nonnull) instancetype)init
@end
我不知道Objective C是否可以使用swift闭包。
对不起,我的英语很差。您可以将
@objc
添加到方法中以强制发送错误消息。基本上,ObjC不支持可选的值类型(Bool?
)。如果您将其更改为justBool
它应该可以工作。是的,它可以工作。非常感谢您。感谢您提供有关@objc
的信息!我不知道它也可以用于属性。