将NSString写入文件

我试图写一个string到一个文件,并将其存储在我的应用程序中的applicationSupport文件夹。 但是我的NSLog()语句不会在debugging器中logging任何东西。 我试图通过debugging器来通过它,我可以看到内容是零,所以我猜这就是为什么它不输出任何东西,但我不知道为什么它设置为零。 任何人都可以看到我的错误?

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); 

filename是错误的。 它应该有以下格式: "directory/file.extension" 。 你可以使用方法stringByAppendingPathComponentstringByAppendingPathExtension来构造这样一个string。

 NSString *filename = [supportDirectory stringByAppendingPathComponent:[_nameTextField.text stringByAppendingPathExtension:@"txt"]]; 

另外,作为一个附注,第一行应该使用stringWithFormat来重写:

 NSString *document = [NSString stringWithFormat:@"%@ %@ %@ %@ %@", description, focus, level, equipment, waterDepth]; 

你有错误的初始化文件名​​。 它应该是:

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

它会起作用! 祝你好运:)

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

是错的。 它应该是:

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