从Swift调用variadic Objective-C函数
发布时间:2020-12-14 04:40:57 所属栏目:百科 来源:网络整理
导读:我总结了问题的步骤,我在Objective-C中定义了一个C函数: ObjC.h #import Foundation/Foundation.hvoid cuslog(NSString *format,...);@interface ObjC : NSObject@end ObjC.m #import "ObjC.h"@implementation ObjC@endvoid cuslog(NSString *format,...){
我总结了问题的步骤,我在Objective-C中定义了一个C函数:
ObjC.h #import <Foundation/Foundation.h> void cuslog(NSString *format,...); @interface ObjC : NSObject @end ObjC.m #import "ObjC.h" @implementation ObjC @end void cuslog(NSString *format,...) { // Implementation } 我在Bridging-Header.h中公开了它: #import "ObjC.h" // Also tried to put this line in bridging header void cuslog(NSString *format,...); 在Swift中,我打算像这样调用函数: cuslog("Some log") 但错误说: "Use of unresolved identifier 'cuslog'" 在Swift中调用函数的正确方法是什么? 解决方法
根据Swift开发者,C variadic functions are not compatible with Swift variadics,所以你将无法直接调用你的函数.
目前唯一的解决方法是在C或Obj-C中编写一个非变量包装器,并从Swift中调用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |