代码之家  ›  专栏  ›  技术社区  ›  Stone Mason

Objtovi-C中的C++管道

  •  0
  • Stone Mason  · 技术社区  · 15 年前

    我以前做了从C++到Objul-C的转换,现在我发现NSCORE()令人厌烦。相反,我仍然在客观C中,我希望能够写一些 stdout<<“答案是”<<42<<“\n”; (我知道nslog打印到stderr,我可以忍受写stderr<<“Hello World”;)

    基本上,我只希望能够在Objtovi-C中使用C++管道语法。

    我不在乎速度(在合理范围内),也不在乎唯一的方法是否使用预编译宏或其他黑客工具。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Sven    15 年前

    你真的应该习惯将字符串格式化为 NSLog . C++风格的语法可能很容易编写,但这是一个难以维护的噩梦。想想国际化。格式字符串可以在运行时轻松加载。可可提供功能 NSLocalizedString 为了这个。但是对于C++的流操作符,可能需要为每个语言编写不同的代码。

        2
  •  0
  •   Joshua Weinberg    15 年前

    你想要的是流操作。

    在可可中没有一种真正“好”的方法可以做到这一点,我有一个图书馆,我从来没有真正充实过,它允许你做一些“接近”这一点的事情,但仍然不会得到很多好处。

    http://github.com/jweinberg/Objective-Curry/blob/master/OCFileStream.m

    从那里开始,你就可以写一个

    [[[stdOutStream write:@"10"] write:[bleh description]] write:@"more stuff"];