带 \0 的 NSString

发布于 2024-11-10 18:17:14 字数 126 浏览 1 评论 0原文

启动包含 @"\0" 的 NSString 的最佳方法是什么?

NSString* foo = @"bar\0";

导致“CFString 文字包含 NUL 字符”警告。

What is the best way to initiate NSString that contains @"\0"?

NSString* foo = @"bar\0";

causes 'CFString literal contains NUL character' warning.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

玩套路吗 2024-11-17 18:17:14

NSString 对象用于文本。如果您希望在文本数据中包含非文本数据(例如,当要将其写入套接字或保存到一个文件)。

NSString objects are for text. Consider using an NSData or NSMutableData object if you wish to have non-text data in amongst textual data (for example, when it is to be written to a socket or saved to a file).

我也只是我 2024-11-17 18:17:14

可以将 NUL 字符放入 NSString 实例中,这是一个示例:

int main() {
    NSString *string = [NSString stringWithFormat: @"Hello%CWorld!", 0];
    NSData *bytes = [string dataUsingEncoding: NSUTF8StringEncoding];
    NSLog(@"string: %@", string);
    NSLog(@"bytes: %@", bytes);
    return 0;
}

请注意,在应用执行过程中的令人惊讶的时刻,该字符串将被转换为 C 字符串(或类似的东西)以与较低级别的 API 交互,这将导致字符串被截断。例如,上述程序的输出是这样的:

2011-06-02 09:18:30.307
无标题[294:707]字符串:你好

2011-06-02 09:18:30.309
无标题[294:707]字节:<48656c6c
6f00576f 726c6421>

显示 NSString 本身完好无损,但 NSLog() 无法正确显示它。

You can put a NUL character into an NSString instance, here's one example:

int main() {
    NSString *string = [NSString stringWithFormat: @"Hello%CWorld!", 0];
    NSData *bytes = [string dataUsingEncoding: NSUTF8StringEncoding];
    NSLog(@"string: %@", string);
    NSLog(@"bytes: %@", bytes);
    return 0;
}

Be aware that at surprising points in your app's execution, the string will be converted into a C string (or something similar) for interacting with lower-level API, and that this will cause the string to be truncated. As an example, the output of the above program is this:

2011-06-02 09:18:30.307
Untitled[294:707] string: Hello

2011-06-02 09:18:30.309
Untitled[294:707] bytes: <48656c6c
6f00576f 726c6421>

Showing that the NSString itself is completely intact but that NSLog() won't display it correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文