Verwendung von nicht signierten Char-Arrays und bitweisen Operatoren in Swift

8

Ich arbeite daran, einen Objective-C-Code auf Swift zu übertragen, und ich kann mir nicht vorstellen, wie ich mich um nicht signierte Char-Arrays und bitweise Operationen in diesem spezifischen Code kümmern kann.

Ich arbeite gerade daran, den folgenden Objective-C-Code (der sich mit CoreBluetooth beschäftigt) zu Swift zu konvertieren:

%Vor%

Ich habe Folgendes in Swift ausprobiert:

%Vor%

Die Probleme, auf die ich gestoßen bin, sind, dass getUUIDBytes in Swift anscheinend nur ein CMutablePointer<CUnsignedChar> -Objekt als Argument und nicht ein Array von CnsignedChars verwendet, also habe ich keine Ahnung, wie man die späteren bitweisen Operationen auf advertisementBytes durchführt. wie es scheint, müsste es ein unsignedChar-Array sein, um dies zu tun.

Außerdem gibt CMutablePointer<CUnsignedChar[21]> einen Fehler aus, der besagt, dass Arrays fester Länge in CMutablePointers in Swift nicht unterstützt werden.

Könnte jemand bitte über mögliche Umgehungsmöglichkeiten oder Lösungen beraten? Vielen Dank.

    
Will Jack 04.06.2014, 23:44
quelle

1 Antwort

7

Sehen Sie sich Interaktion mit C-APIs

Meistens das

  

C Veränderbare Zeiger

     

Wenn eine Funktion als CMutablePointer deklariert wird   Argument kann es eines der folgenden akzeptieren:

     
  • nil, das als Nullzeiger übergeben wird
  •   
  • Ein CMutablePointer-Wert
  •   
  • Ein In-Out-Ausdruck, dessen Operand ein gespeicherter Lvalue des Typs Type ist,   welches als Adresse des lvalue
  • übergeben wird   
  • Ein In-Out Typ [] Wert,   welches als Zeiger auf den Anfang des Arrays übergeben wird, und   Lifetime-Extended für die Dauer des Anrufs
  •   

Wenn Sie a erklärt haben   Funktion wie diese:

     

SWIFT

%Vor%      

kann es auf eine der folgenden Arten aufrufen:

     

SWIFT

%Vor%

Sie werden also zu

%Vor%     
Rod 05.06.2014, 02:09
quelle

Tags und Links