2015-09-15 30 views
0

我正尝试使用此代码写入ApplicationSupport目录。当我点击这个按钮时,我得到的错误是一个错误的值是零。将文件写入ApplicationSupport目录的正确方法是什么?写入应用程序支持目录

class ViewController: UIViewController{ 
    let fileManager = NSFileManager.defaultManager() 
    var suppDir: String = "" 
    var test: String = "huhu" 
    @IBOutlet weak var button: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     suppDir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.ApplicationSupportDirectory, NSSearchPathDomainMask.UserDomainMask, true).first! 

     if !fileManager.fileExistsAtPath(suppDir){ 
      do{ 
       try fileManager.createDirectoryAtPath(suppDir, withIntermediateDirectories: true, attributes: nil) 
      }catch{} 

     } 

     do{ 
      try test.writeToFile(suppDir, atomically: false, encoding: NSUTF8StringEncoding) 
     }catch{} 

    } 


    @IBAction func buttonPressed(sender: UIButton) { 

     let data = fileManager.contentsAtPath(suppDir) 
     let datastring = NSString(data: data!, encoding:NSUTF8StringEncoding) 
     button.setTitle(String(datastring), forState: UIControlState.Normal) 
    } 
} 

回答

1

您正在试图写入支持目录,而不是在其中一个文件:

try test.writeToFile(suppDir, atomically: false, encoding: NSUTF8StringEncoding) 

您需要:

let filename = suppDir.stringByAppendingPathComponent("some_file.dat") 
try test.writeToFile(filename, atomically: false, encoding: NSUTF8StringEncoding) 

您还需要报告任何错误,将有助于开发和部署。

+0

很好,这有帮助。为什么我需要报告任何错误? – brumbrum

+0

所以你知道事情为什么会失败。你只需要记录它,你不需要一个警告对话框。 – trojanfoe

+0

好的,但在这种情况下,如果事情没有失败,这是不必要的,对吧? – brumbrum

相关问题