繁体   English   中英

Objective-C中的C ++管道

[英]C++ pipes in Objective-C

我前一阵子从C ++过渡到Objective-C,现在发现NSLog()很烦人。 相反,仍然在Objective-C中,我希望能够编写类似stdout <<的内容,答案是“ << 42 <<” \\ n“; (我知道NSLog可以打印到stderr,我可以忍受编写stderr <<“ Hello world”;)

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

我不在乎速度(在合理范围内),也不在乎唯一的方法是否使用预编译器宏或其他类似hack的东西。

您确实应该习惯于像NSLog那样格式化字符串。 C ++样式语法可能很容易编写,但是维护起来却是一场噩梦。 考虑国际化。 格式字符串可以在运行时轻松加载。 为此,可可提供了NSLocalizedString函数。 但是对于C ++的流运算符,您可能必须为每种语言编写不同的代码。

您想要的是流操作。

在Cocoa中,没有一种真正的“好”方法,我有一个我从未真正充实过的库,它可以让您“接近”做些事情,但仍然得不到很多好处。

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

从那里开始,您将能够编写一个

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM