objective-c:在数组中分配变量而不是字符串

时间:2012-06-14 17:08:18

标签: iphone objective-c arrays string variables

我想在以下代码中分配一个变量而不是字符串。 首先,我从逗号分隔的目录列表创建一个数组。接下来,对于数组中的每个目录,如果它们不存在,我想创建它们。

如何从数组中分配目录而不是:@“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];
    }

}

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分: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:@", "];

但不是两个!!!