iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何设置和获取指针Swift的值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在Objetive-C中,当我想要设置/改变指针的值。我用 *pointer = value 但是在Swift中,如何获取/设置指针的值? 我正在使用位图像素: NSUInteger offsetPixelCountForInput = ghostOrigin.y * inputWidth + ghostOrigin.x; for (NSUInteger j = 0; j < ghostSiz
在Objetive-C中,当我想要设置/改变指针的值。我用

*pointer = value

但是在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,newG));
      newB = MAX(0,newB));

        *inputPixel = RGBAMake(newR,newG,newB,A(inputColor));
    }
  }

所以我想把这个代码转换成Swift,但是我被卡住了指针。

23.03.2016 – 更新代码

var inputPixels:UnsafeMutablePointer<UInt32> = nil
inputPixels = UnsafeMutablePointer<UInt32>(calloc(inputHeight * inputWidth,UInt(sizeof(UInt32))))

解决方法

您可以使用Swift中的指针。有UnsafePointer和UnsafeMutablePointer通用类型。

这是一个使用float指针的函数
您可以使用float变量并传递它的地址& floatVar
或者您可以创建并分配UnsafeMutablePointer并将其传递。但是你必须手动分配和释放内存。

您使用UnsafeMutablePointer指针类型并希望为其分配一些值时,您必须执行以下操作:

检查是否指向一些变量(不是零)
>将值分配给内存属性

代码例:

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)
@H_197_64@

大佬总结

以上是大佬教程为你收集整理的ios – 如何设置和获取指针Swift的值全部内容,希望文章能够帮你解决ios – 如何设置和获取指针Swift的值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。