2011-01-10 57 views
0

我在打印使用NSFileManager檢索的文件名列表時遇到了一些麻煩。文檔說它返回一個字符串數組 - 但我的輸出是空白的。在下面的代碼示例中,執行會顯示帶有冒號的索引,而不會顯示其他任何內容...我是一個很長時間的java程序員,但總的來說c/objc是newb。我只是濫用printf?謝謝你的幫助!使用ObjC打印文件名很困難

輸出:
關於打印文件列表-----------------------
號文件:29
0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:

- (IBAction)printFileList:(id)sender{ 
NSFileManager *fm = [[NSFileManager alloc] init]; 
NSString *path = @"/"; 
NSArray *files = [fm contentsOfDirectoryAtPath:path error:NULL]; 
printf("About to print file list ----------------------- \n"); 
int fileCount = [files count]; 
printf("Number of files: %d", fileCount); 
for(int i = 0; i<fileCount; i++){ 
    printf("%d: %s\n", i, [files objectAtIndex:i]); 
} 

}

回答

3

由於NSString *是一個指針,而不是C字符串,所以不能使用%s作爲NSString *的格式說明符。您printf行更改爲:

printf("%d: %s\n", i, [[files objectAtIndex:i] UTF8String]); 
+0

可能行也可以改變 「%d:%s的\ n」 來 「%d:%@ \ n」? – KevinDTimm 2011-01-10 19:39:48