如何将INT值传递给Swift的目标C函数



我想将整数值从swift到目标c函数,我可以对其进行处理。

目标C函数定义是

 (void)getAllDevices:(NSInteger *)limit :(NSInteger *)offset

目标C函数是名为Demosdk的SDK的一部分。

我尝试使用此函数调用来传递Swift的值

我尝试这样做

DemoSDK.getAllDevices(10,10)

但是出现的错误是

无法将类型INT的值转换为预期的UnsfemutablePointer类型的参数

我对目标C非常陌生,这绝对是一个业余问题。我想向目标C函数发送一个int值,在其中可以处理int值。我该怎么做?请帮忙。

参数不要求整数,他们要求参考整数。这是通过swift中的 &实现的。

var limit = Int()
var offset = Int()
DemoSDK.getAllDevices(&limit, &offset)

有两个类似但可以误认为的方法。

  • 通常的方法是

    init(contentsOfURL url: NSURL,
        encoding enc: UInt) throws
    

    encoding参数采用NSStringEncoding值来指定编码,例如

    let string = try? String(contentsOfURL:url, encoding:NSUTF8StringEncoding)
    

  • 第二种方法检索通过将指针作为usedEncoding参数传递给文件中的编码

    init(contentsOfURL url: NSURL,
        usedEncoding enc: UnsafeMutablePointer<UInt>) throws
    

    文档说:

    返回后,如果成功读取URL,则包含所用编码 解释数据。

    这意味着您必须通过指针,该指针包含文件的确定编码。

    var encoding : NSStringEncoding = 0
    let string = try? String(contentsOfURL:url, usedEncoding:&encoding)
    

最新更新