2016-05-19 64 views
0

我有一個應用程序,我想爲每個玩遊戲的人保存一個用戶名,然後將其檢索到可用於創建標題的數組中一個tableview。我正在使用此代碼來保存文件。保存和檢索文件到文檔目錄中的數組Xcode iOS

NSError *error; 
    NSFileManager *fileMgr = [NSFileManager defaultManager]; 
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [documentPaths objectAtIndex:0]; 
    NSString *slash2 = [documentsDirectory stringByAppendingString:@"/Names"]; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:slash2]) 
     [[NSFileManager defaultManager] createDirectoryAtPath:slash2 withIntermediateDirectories:NO attributes:nil error:&error1]; 


    //yourName is the userName of the challenger 

    NSString *fullPath = [slash2 stringByAppendingPathComponent:yourName]; 

,當我看着路

NSLog(@"path :%@",fullPath); 

我得到

"Names/Mary", 
"Names/John", 

我希望再拿到這些名字形成的文件目錄到一個數組使用是實現代碼如下。我曾嘗試

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *slasha = [documentsDirectory stringByAppendingPathComponent:@"/Names"]; 


NSArray *arrayFromFile = [NSArray arrayWithContentsOfFile:slasha]; 

for (NSString *element in arrayFromFile) 
    NSLog(@"Names: %@", element); 

,但沒有顯示出來

什麼我做錯了,我怎麼能做到這一點

回答

1

user1114881,

創建文件夾顯示挑戰者名的tableView頭,嚴重???我會說它是一個非常錯誤的方法。

話雖這麼說,現在讓我解決您的問題,

NSError *error; 
    NSFileManager *fileMgr = [NSFileManager defaultManager]; 
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [documentPaths objectAtIndex:0]; 
    NSString *slash2 = [documentsDirectory stringByAppendingString:@"/Names"]; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:slash2]) 
     [[NSFileManager defaultManager] createDirectoryAtPath:slash2 withIntermediateDirectories:NO attributes:nil error:&error1]; 


    //yourName is the userName of the challenger 

    NSString *fullPath = [slash2 stringByAppendingPathComponent:yourName]; 
    BOOL Success = [[NSFileManager defaultManager] createFileAtPath:fullPath contents:nil attributes:nil]; 

錯誤,你在幹什麼,你永遠爲用戶創建一個文件,你只是創建了一個名爲名稱的文件夾。您需要調用createFileAtPath來創建文件。

爲了讀取文件夾中的所有文件使用

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *slasha = [documentsDirectory stringByAppendingPathComponent:@"/Names"]; 
NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:slasha error:nil]; 

你必須能夠看到現在的文件夾名稱:)

快樂編碼的所有文件的清單。

+0

感謝這正是我想要的。現在我只需要弄清楚如何將數組元素分割爲不同的字符串,並且數組元素的數量不斷變化。 – user1114881

相關問題