问题标签 [unsafe-pointers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
483 浏览

swift - 再次将 AudioBufferList 与 Swift 一起使用

参考使用 Swift的 AudioBufferList

我在 Stack Overflow 上找到了以下解决方案,用于使用音频单元播放一些声音。我的问题是我无法像正弦波数据一样将实际数据放入缓冲区。我尝试了它memcpy而不是,memset但这些UnsafePointer东西非常累人。

那么有人会澄清我如何将实际数据放入我的缓冲区,还是我应该拿起一本Objective-C书并重新做一遍?

0 投票
1 回答
940 浏览

swift - 将 C 字符数组(不安全指针)转换为字符串

我有一个UnsafeMutablePointer<Character>由 CoreFoundation 方法填充的。

如果我用%s占位符 NSLog 它,它输出就好了。

但如果我尝试使用 Swift print,它只会写入内存地址。

几乎尝试了一切......我也不明白为什么如果我尝试访问底层memory属性,我会得到一个EXC_BAD_ACCESS.

0 投票
4 回答
22880 浏览

swift - 如何将自己转换为 UnsafeMutablePointer快速输入

在调用以下代码时,尝试将“self”快速传递给 C 函数:

在这里将“self”转换为 UnsafeMutablePointer 类型的理想方法是什么?

0 投票
0 回答
204 浏览

swift - 如何从接受 UnsafeMutablePointer 的函数将数据读入数据结构?

我正在从带有NSInputStream. 当使用以下内容将数据读入 UInt8 数组时,这非常有用:

其中inputStream是一个NSInputStreamread方法的第一个参数是一个UnsafeMutablePointer<UInt8>

我的问题是如何将输入数据读入 UInt8 数组以外的数据结构中,例如message下面的对象:

我已经尝试了所有我能想到的并且没有运气的搜索。任何帮助将不胜感激。

0 投票
1 回答
271 浏览

swift - 从 CFArray 获取值时出错

我正在尝试从通讯录中获取联系人。我的代码在 Objective C 中正常工作,但是当我将其转换为 swift 时出现错误

无法将“Swift.UnsafePointer<()>”类型的值转换为“Swift.AnyObject”

下面是我的代码

如何将记录转换为 ABRecordRef。请帮忙

0 投票
1 回答
5303 浏览

ios - Swift 错误:“&”与“UnsafeMutablePointer”类型的非输入参数一起使用

我正在尝试从中转换以下 Objective-C 代码(source

进入斯威夫特:

但是我&ascent在这一行中遇到了错误:

'&' 与 'UnsafeMutablePointer' 类型的非 inout 参数一起使用

Xcode 建议我通过删除&. 但是,当我这样做时,我得到了错误

无法将“CGFloat”类型的值转换为预期的参数类型“UnsafeMutablePointer”

Interacting with C APIs 文档使用&语法,所以我看不出问题出在哪里。如何修复此错误?

0 投票
2 回答
4107 浏览

swift - 不安全指针来自 CGAffineTransform

我正在尝试在 Swift 中创建一个 CGPath。我正在使用CGPathCreateWithRect(rect, transformPointer).

我怎样才能UnsafePointer<CGAffineTransform>从 a 中得到一个CGAffineTransform?我试过这个:

我也试过这个:

但斯威夫特抱怨'&' with non-inout argument of type.... 我也尝试过&transform直接传递,CGPathCreateWithRect但由于同样的错误而停止。

当我直接传入时transform,Swift“无法将'CGAffineTransform'类型的值转换为预期的参数类型'UnsafePointer'”。

发生了什么事,如何使这与 Swift 2.1 一起工作?

0 投票
2 回答
3518 浏览

arrays - 如何将快速数组作为 UnsafePointer 传递函数中的参数

我读到,为了将 swift 变量/常量传递给期望 UnsafePointer 的参数,可以通过使用变量/常量前缀的“inout”(与号)符号来完成。因此,在下面的代码中,我想将“颜色”数组作为“UnsafePointer”传递给函数 CGGradientCreateWithColorComponents(),但出现编译器错误:

"& 与 UnsafePointer 类型的非 inout 参数一起使用"

视觉效果见下图。

所以,问题是,如何将 swift 数组 'colors' 转换为 UnsafePointer ?

谢谢

在此处输入图像描述

0 投票
1 回答
202 浏览

swift - 在 Swift 中有效地将 Int16 数据写入内存?

我有一个内存引用 mBuffers.mData(来自 AudioUnit bufferList),在 OS X 和 iOS 框架头文件中声明为:

将大量 Int16 值写入此指针引用的内存的有效方法是什么?

这个 Swift 源代码的反汇编:

显示了许多设置 memset() 函数调用的指令(比我的 someFastCalculation 中的指令多得多)。这是实时音频回调中的一个循环,因此最大限度地减少延迟和电池消耗的高效代码非常重要。

有更快的方法吗?

0 投票
1 回答
674 浏览

swift - Swift 中指向最后一个数组元素的 UnsafePointer

我正在尝试在此处vDSP_conv使用Accelerate 中的功能。的参数之一是“需要指向最后一个向量元素”。我对在 Swift 中使用指针不是很熟悉,所以我不知道如何创建指向 Swift 数组的最后一个数组元素的指针。vDSP_convconst float *__F

谁能提供一些见解?

/** 编辑 **/

我试图调用的函数规范: func vDSP_conv(_ __A: UnsafePointer<Float>, _ __IA: vDSP_Stride, _ __F: UnsafePointer<Float>, _ __IF: vDSP_Stride, _ __C: UnsafeMutablePointer<Float>, _ __IC: vDSP_Stride, _ __N: vDSP_Length, _ __P: vDSP_Length)

到目前为止,我有这个代码。我需要y指向数组中最后一个元素的指针,从数组conv末尾开始并前进到前面