Gia*_*ang 26 xcode objective-c ios swift
在Objetive-C中,当我想要指针的设置/更改值时.我用
*pointer = value
Run Code Online (Sandbox Code Playgroud)
但是在Swift中,如何获取/设置指针的值?
我正在使用位图像素:
NSUInteger offsetPixelCountForInput = ghostOrigin.y * inputWidth + ghostOrigin.x;
for (NSUInteger j = 0; j < ghostSize.height; j++) {
for (NSUInteger i = 0; i < ghostSize.width; i++) {
UInt32 * inputPixel = inputPixels + j * inputWidth + i + offsetPixelCountForInput;
UInt32 inputColor = *inputPixel;
newR = MAX(0,MIN(255, newR));
newG = MAX(0,MIN(255, newG));
newB = MAX(0,MIN(255, newB));
*inputPixel = RGBAMake(newR, newG, newB, A(inputColor));
}
}
Run Code Online (Sandbox Code Playgroud)
所以我想将这段代码转换成Swift,但我仍然坚持使用指针.
23.03.2016 - 更新代码
var inputPixels:UnsafeMutablePointer<UInt32> = nil
inputPixels = UnsafeMutablePointer<UInt32>(calloc(inputHeight * inputWidth, UInt(sizeof(UInt32))))
Run Code Online (Sandbox Code Playgroud)
Kos*_*val 48
你可以在Swift中使用指针.有UnsafePointer和UnsafeMutablePointer泛型类型.
这是一个带float指针的函数
您可以使用float变量并传递它的地址&floatVar
,也可以创建并分配UnsafeMutablePointer并传递它.但您必须手动分配和释放内存.
当您使用UnsafeMutablePointer指针类型并想要为其指定一些值时,您必须执行以下操作:
memory属性代码示例:
func work (p: UnsafeMutablePointer<Float>) {
if p != nil {
p.memory = 10
}
println(p)
println(p.memory)
}
var f: Float = 0.0
var fPointer: UnsafeMutablePointer<Float> = UnsafeMutablePointer.alloc(1)
work(&f)
work(fPointer)
fPointer.dealloc(1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31708 次 |
| 最近记录: |