2012-06-14 76 views
2

我想在我的下面的代碼中分配一個變量而不是字符串。 首先我從逗號分隔的目錄列表創建一個數組。接下來對於數組中的每個目錄,如果它們不存在,我想創建它們。objective-c:分配變量而不是字符串內的數組

我如何從數組中分配目錄而不是:@「templates/standard1/css」 我試圖用s代替它,但那並不奏效。我可以NSlog的,但它似乎並沒有創建目錄。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString *theString = @"templates, templates/standard1, templates/standard1/css, themes, themes/plain, themes/plain/384"; 
NSArray *items = [theString componentsSeparatedByString:@","]; 
for (NSString *s in items) { 
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"templates/standard1/css"]; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]) { 
     // Directory does not exist so create it 
     [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:YES attributes:nil error:nil]; 
    } 

} 

任何幫助,將不勝感激:)

+0

哇!這是多麼愚蠢? 謝謝指出! :) – Jens

+0

@trumpetlicks你應該回答這個問題,所以你可以得到信用。 –

+0

@ mjb162 - 感謝您的指導:-) – trumpetlicks

回答

3

我認爲空間是困擾你的目錄。您有每個目錄用「,」分隔,但正在搜索「,」(沒有空格)。您可以從theString中取出空格,或者使用「,」作爲分隔符,以便使用字符串!

所以要麼改變

NSString *theString = @"templates, templates/standard1, templates/standard1/css, themes, themes/plain, themes/plain/384"; 

這個

NSString *theString = @"templates,templates/standard1,templates/standard1/css,themes,themes/plain,themes/plain/384"; 

或更改此:

NSArray *items = [theString componentsSeparatedByString:@","]; 

這樣:

NSArray *items = [theString componentsSeparatedByString:@", "]; 

但不是兩個!

+0

這是正確的解決方案,謝謝! – Jens

+0

很高興能幫助,保持樂趣:-) – trumpetlicks

相關問題