有没有比 alloc 和 initWithFormat 更短的方法来从两种不同的数据类型创建 NSString?

Posted

技术标签:

【中文标题】有没有比 alloc 和 initWithFormat 更短的方法来从两种不同的数据类型创建 NSString?【英文标题】:Is there a shorter method than alloc and initWithFormat for creating a NSString from two different data types? 【发布时间】:2014-02-27 22:53:22 【问题描述】:

我需要返回一个 NSString*,它将由一个 unsigned char 和另一个 NSString 创建。 initWithFormat 允许将两种不同的数据类型组合成一个字符串,但有没有比使用 alloc 和 initWithFormat 更短的方法来创建字符串?

NSString *stringMagic()

    unsigned char foo = 0x42;
    NSString *bar;

    // ...
    // Magic happens here
    // ...

    bar = @"unicorns";

    return [[NSString alloc] initWithFormat:@"%d %@", foo, bar];

【问题讨论】:

你能解释一下你认为“不聪明”的地方吗? 这个问题不太清楚目标是什么 看来已经够清楚了,答案就这么简单“否”。但答案仅限于最少数量的字符,所以我不能发布。 好吧,你总是可以使用stringWithFormat。当然,您可以使用其他几个 NSString 函数将 int 格式化为十进制,连接两个字符串等。 谢谢,stringWithFormat 正是我想要的。 【参考方案1】:
[NSString stringWithFormat:@"%d %@", foo, bar]

【讨论】:

是的,我想我从来没有用过 initWithFormat。

以上是关于有没有比 alloc 和 initWithFormat 更短的方法来从两种不同的数据类型创建 NSString?的主要内容,如果未能解决你的问题,请参考以下文章

内存映射文件 std::allocator 实现冻结 WM6 设备

条目十《了解分配子(allocator)的约定和限制》

C++ allocator::allocate 是不是应该抛出?

Fortran 中没有 Allocate() 的可变大小数组

AttributeError:模块“common”没有属性“allocate_buffers”

C++实现自定义vector以及allocator