将文件保存和检索到文档目录中的数组 Xcode iOS
saving and retrieving files to an array in documents directory Xcode iOS
我有一个应用程序,我想为和我一起玩游戏的每个人保存一个用户名,然后将其检索到一个数组中,该数组可用于为表视图创建 headers。我正在使用此代码保存文件。
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",
然后我想将这些名称从文档目录中获取到一个数组中以供 tableview 使用。我试过了
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);
但什么也没显示
我做错了什么,我该怎么做
user1114881,
正在创建文件夹以在 tableView 中显示挑战者姓名 header,认真的???我会说这是一个非常错误的做法。
话虽这么说,现在让我解决你的问题,
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];
您犯的错误是,您从未为用户创建文件,您只是创建了一个名为 Names 的文件夹。您需要调用 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];
您现在必须能够看到文件夹名称中所有文件的列表:)
编码愉快。
我有一个应用程序,我想为和我一起玩游戏的每个人保存一个用户名,然后将其检索到一个数组中,该数组可用于为表视图创建 headers。我正在使用此代码保存文件。
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",
然后我想将这些名称从文档目录中获取到一个数组中以供 tableview 使用。我试过了
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);
但什么也没显示
我做错了什么,我该怎么做
user1114881,
正在创建文件夹以在 tableView 中显示挑战者姓名 header,认真的???我会说这是一个非常错误的做法。
话虽这么说,现在让我解决你的问题,
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];
您犯的错误是,您从未为用户创建文件,您只是创建了一个名为 Names 的文件夹。您需要调用 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];
您现在必须能够看到文件夹名称中所有文件的列表:)
编码愉快。