我想轉換目標-C
float *bitmap = [self createRGBABitmapFromImage:image.CGImage];
int bitmapOffset = 0;
&bitmap[bitmapOffset]
float * 在 swift 中是 UnsafeMutablePointer 但 UnsafeMutablePointer 不是陣列。
所以我不能使用bitmapOffset。
&bitmap[bitmapOffset] 這個型別為 UnsafePointer
uj5u.com熱心網友回復:
所以我不能使用 bitmapOffset
是的你可以。UnsafeMutablePointer 是可下標的,就像 C 中的指標/陣列一樣。
我會證明的。這類似于您的 C 代碼——一個回傳 a 的函式float*:
float arr[] = {(float)1.1, (float)2.1, (float)3.1};
float* doSomething() {
return arr;
}
正如你所說的那樣,doSomething在 Swift 中被視為回傳一個 UnsafeMutablePointer。讓我們檢索它——并為它下標!
let floats = doSomething()
let oneFloat = floats[0]
let anotherFloat = floats[1]
print(oneFloat) // 1.1
print(anotherFloat) // 2.1
(但是,如果您要翻譯所有代碼,也許您的方法實際上應該回傳一個陣列;我不知道,因為您沒有顯示它。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/434853.html
