如何使用 swift 中的参数调用函数 objective c
How call a function objective c with args in swift
我在 objective c
中有下一个功能
+ (NSString *)getNsLog:(NSString *)pString, ...{
va_list args;
va_start(args, pString);
NSLogv(pString, args);
va_end(args);
return [[NSString alloc] initWithFormat:pString arguments:args];
}
如何从 swift 调用此函数或将代码转换为 swift,这样当我调用该函数时可以是:
getNslog("my value1 = %@ value2 = %@","hello","world")
请注意,第二个参数没有别名。
getNslog("my value1 = %@ value2 = %@", args:"hello","world")
只需在 YourProjectname-Bridging-Header.h
文件中导入包含此方法的 class。
#import "`YourClass.h"
创建导入的 class 的对象
var a = YourClass()
然后调用该方法并传递所需的参数
a.getNsLog(yourParameters)
希望对您有所帮助
我解决了:
在 objective c 中将我的代码更改为:
+(NSString*)getNsLog:(NSString*)pString args:(va_list)args{
NSLogv(pString, args);
va_end(args);
return [[NSString alloc] initWithFormat:pString arguments:args];
}
在 swift app delegate 我添加
extension MyClass {
class func getNsLog(format: String, _ args: CVarArgType...) -> NSString?
{
return MyClass.getNsLog(format, args:getVaList(args))
}
}
现在我可以调用函数
NSLog("%@", MyClass.getNsLog("%@,%@", "hello","World")!)
我在 post 重复 How do you call an Objective-C variadic method from Swift?
谢谢。
我在 objective c
中有下一个功能+ (NSString *)getNsLog:(NSString *)pString, ...{
va_list args;
va_start(args, pString);
NSLogv(pString, args);
va_end(args);
return [[NSString alloc] initWithFormat:pString arguments:args];
}
如何从 swift 调用此函数或将代码转换为 swift,这样当我调用该函数时可以是:
getNslog("my value1 = %@ value2 = %@","hello","world")
请注意,第二个参数没有别名。
getNslog("my value1 = %@ value2 = %@", args:"hello","world")
只需在
YourProjectname-Bridging-Header.h
文件中导入包含此方法的 class。#import "`YourClass.h"
创建导入的 class 的对象
var a = YourClass()
然后调用该方法并传递所需的参数
a.getNsLog(yourParameters)
希望对您有所帮助
我解决了:
在 objective c 中将我的代码更改为:
+(NSString*)getNsLog:(NSString*)pString args:(va_list)args{
NSLogv(pString, args);
va_end(args);
return [[NSString alloc] initWithFormat:pString arguments:args];
}
在 swift app delegate 我添加
extension MyClass {
class func getNsLog(format: String, _ args: CVarArgType...) -> NSString?
{
return MyClass.getNsLog(format, args:getVaList(args))
}
}
现在我可以调用函数
NSLog("%@", MyClass.getNsLog("%@,%@", "hello","World")!)
我在 post 重复 How do you call an Objective-C variadic method from Swift?
谢谢。