2015-09-15 2 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

Смежные вопросы