簡體   English   中英

如何從Swift將Int值傳遞給Objective C函數?

[英]How to pass an Int value to an Objective C function from Swift?

我想將一個整數值從Swift傳遞給Objective C函數,以便在其中進行處理。

目標C函數定義為

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

Objective C函數是稱為DemoSDK的SDK的一部分。

我嘗試使用此函數調用從Swift傳遞值

我嘗試這樣做

DemoSDK.getAllDevices(10,10)

但是隨之而來的錯誤是

無法將Int類型的值轉換為UnsafeMutablePointer類型的預期參數

我對Objective 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) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM