gpt4 book ai didi

objective-c - Objective-C 上下文中不熟悉的 C 语法

转载 作者:行者123 更新时间:2023-12-03 16:23:14 24 4
gpt4 key购买 nike

我将从 C# 转向 Objective-C,没有任何 C 的中间知识。(是的,是的,我在某个时候需要学习 C,而且我完全打算这样做。)在 Apple 的 Certificate, Key, and Trust Services Programming Guide 中,有如下代码:

static const UInt8 publicKeyIdentifier[] = "com.apple.sample.publickey\0";
static const UInt8 privateKeyIdentifier[] = "com.apple.sample.privatekey\0";

我有一个NSString,我想在这里用作标识符,但我一生都不知道如何将其放入这个数据结构中。通过谷歌搜索也无果。我看了NSString Class Reference并查看了 UTF8StringgetCharacters 方法,但我无法将产品放入结构中。

我缺少什么简单、容易的技巧?

最佳答案

这些是 C 字符串:字符数组(不是 NSArray,而是 C 数组)。最后一个字符是 NUL,数值为 0。

“UInt8”是无符号八位字节的 CoreServices 名称,它(在 Mac OS X 上)与无符号字符相同。

static意味着该数组特定于该文件(如果它在文件范围内)或在函数调用之间持续存在(如果它在方法或函数体内)。

const正如您所猜测的那样:您无法更改这些数组中的字符。

\0是一个 NUL,但将其明确包含在 "" 中这些示例中所示的文字是多余的。一个""文字(没有 @ )无论如何都是以 NUL 结尾的。

C 没有指定编码。在 Mac OS X 上,它通常与 ASCII 兼容,通常是 UTF-8。

要将 NSString 转换为 C 字符串,请使用 UTF8StringcStringUsingEncoding: 。要让 NSString 将 C 字符串提取到缓冲区中,请使用 getCString:maxLength:encoding: .

关于objective-c - Objective-C 上下文中不熟悉的 C 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1065839/

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