2010-09-17 79 views
0

前段時間我從C++轉換到了Objective-C,現在我發現NSLog()很麻煩。相反,仍然在Objective-C中,我希望能夠寫出如 標準輸出< <「答案是」< <「\ n」; (我知道的NSLog打印到標準錯誤,我可以容忍的寫作標準錯誤< <的「Hello world」)C++管道Objective-C

基本上,我只是想能夠使用C++語法管在Objective-C。

我不關心速度(在合理範圍內),或者如果唯一的方法使用預編譯器宏或其他黑客事情。

回答

3

你真的應該習慣的格式字符串作爲NSLog。 C++風格的語法可能很容易編寫,但這是一個噩夢來維護。考慮國際化。格式字符串可以在運行時輕鬆加載。可可爲此提供了功能NSLocalizedString。但對於C++的流操作符,您可能必須爲每種語言編寫不同的代碼。

0

你想要的是流操作。

Cocoa沒有一個真正的'好'的方法來做到這一點,我有一個我從未真正充實過的圖書館,它可以讓你做一些'接近'的事情,但仍然不會很多的好處。

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

從那裏開始,你就可以寫一個類,確實

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

+0

我真正想要做的是能寫stdOutStream << @「10」<< [bleh description] << @「更多東西」; – 2010-09-18 00:23:55

+0

正確....你不能。 – 2010-09-18 16:00:29