2011-05-15 67 views
0

我想重複NSLog但沒有在開始時所有不必要的日期。我嘗試了下面的c函數(我自己做的),但它不會記錄任何不是NSStrings的其他值。請你能告訴我如何做到這一點,以便記錄任何價值?幫助C printf函數

static void echo(NSString *fmt, ...) { 
    printf("<<<<<<<%s>>>>>>>", [fmt UTF8String]); 
} 

回答

1

要在C可變參數參數列表,你需要使用附帶的編譯器STDARG.H頭文件中定義的幾個宏。

here is a detailed explanation of how to write your own printf

如果你只是想給參數傳遞給無需進一步處理就可以用printf代替vfprintf變種真正的printf,但你需要單獨延長FMT參數:

static void echo(NSString *fmt, ...) 
{ 
    va_list args; 
    NSString *logfmt = [NSString stringWithFormat: @"<<<<<<<%s>>>>>>>", [fmt UTF8String]]; 
    va_start (args, fmt); 
    vfprintf(stdout, [logfmt UTF8String], args); 
    va_end (args); 
    [logfmt release]; 
}