将NSString写入文件

Nie*_*bæk 2 xcode file objective-c ios

我正在尝试将字符串写入文件并将其存储在我的应用程序中的applicationSupport文件夹中.但我的NSLog()语句不会在调试器中记录任何内容.我试图通过调试器来完成它,我可以看到内容是零,所以我猜这就是为什么它没有输出任何东西,但我不知道为什么它设置为零.谁能看到我的错误?

 NSString *document = [[[[[[[[description stringByAppendingString:@" "]stringByAppendingString:focus]stringByAppendingString:@" "]stringByAppendingString:level]stringByAppendingString:@" "]stringByAppendingString:equipment]stringByAppendingString:@" "]stringByAppendingString:waterDepth];
//NSLog(@"%@", document);

//get the documents directory:
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *supportDirectory = [paths objectAtIndex:0];

//filename
NSString *filename = [NSString stringWithFormat:[_nameTextField.text stringByAppendingString:@".txt"], supportDirectory];

[document writeToFile:filename atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];

NSString *content = [[NSString alloc]initWithContentsOfFile:filename usedEncoding:nil error:nil];
NSLog(@"%@", content);
Run Code Online (Sandbox Code Playgroud)

sch*_*sch 6

filename是错的.它应该具有以下格式:"directory/file.extension".您可以使用这些方法stringByAppendingPathComponentstringByAppendingPathExtension构造这样的字符串.

NSString *filename = [supportDirectory stringByAppendingPathComponent:[_nameTextField.text stringByAppendingPathExtension:@"txt"]];
Run Code Online (Sandbox Code Playgroud)

另外,作为附注,第一行应该使用stringWithFormat如下方式重写:

NSString *document = [NSString stringWithFormat:@"%@ %@ %@ %@ %@", description, focus, level, equipment, waterDepth];
Run Code Online (Sandbox Code Playgroud)