gpt4 book ai didi

ios - Objective-C 中的动态缓冲区(带 ARC)

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:05:28 26 4
gpt4 key购买 nike

我正在尝试使用 NSString 对象的 - (void)getCharacters:(unichar *)buffer range:(NSRange)aRange 方法,但我有一个第一个参数的问题。此 NSString 中的字符数不固定,因此我需要动态分配缓冲区(缓冲区的大小必须类似于 [my_string length] * sizeof(UniChar))。

我是 Objective-C 的新手,不知道该怎么做。我可以像在 C 程序中那样使用 malloc(启用 ARC)吗?

最佳答案

是的,您可以malloc() 适当大小的缓冲区。您必须 free() 缓冲区当不再使用时,因为 ARC 不管理 malloced 内存。

或者,使用 UTF-16 编码创建一个 NSData 对象:

NSString *string = @"H€llö Wörld";
NSData *data = [string dataUsingEncoding:NSUTF16LittleEndianStringEncoding];
const unichar *charsPtr = [data bytes];

charsPtr 只要 data 存在就有效,即只要您保持对它的强引用。

关于ios - Objective-C 中的动态缓冲区(带 ARC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23297653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com