2016-03-07 5 views
0

Я пытаюсь написать содержимое в файл в быстройWriteToFile всегда возвращает ложь

let jsonResult = try! NSJSONSerialization.JSONObjectWithData(response.data, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary 

let fileManager = NSFileManager.defaultManager() 
let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) 

let documentDirectory = urls.first!.path 
let path = NSURL(fileURLWithPath: documentDirectory!).URLByAppendingPathComponent("data.txt") 
let dict = jsonResult as NSDictionary 
let status = dict.writeToFile(path.path!, atomically: false) 
print(status) 

Но содержание не записывается в файл и статус всегда ложно

ответ

0

Swift 2

 let file = "file.txt" //this is the file. we will write to and read from it 

     let jsonResult : NSMutableDictionary = NSMutableDictionary.init(object: "08:00:00", forKey: "start_hour"); 
     jsonResult.setValue("10:00:00", forKey: "end_hour"); 
     jsonResult.setValue("30", forKey: "call_duration"); 

     let dict = jsonResult as NSDictionary 

     if let dir : NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first { 
      let path = NSURL(fileURLWithPath: dir as String).URLByAppendingPathComponent(file); 

      //writing 
      dict.writeToFile(path.path!, atomically: false) 

      var contents : NSString 
      //reading 
      do { 
       contents = try NSString(contentsOfFile: path.path!, encoding: NSUTF8StringEncoding) 
      } 
      catch { 
       /* error handling here */ 
       contents = "" 
      } 
      print(contents as String); 
     } 

Если у вас уже есть файл в пачке, используйте следующий код, чтобы найти путь и прочитать файл.

let path = NSBundle.mainBundle().pathForResource("sample-text", ofType: "txt") 

    let contents: NSString 
    do { 
     contents = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding) 
    } catch _ { 
     contents = "" 
    } 

Анализировать ответ веб-службы:

 // responseData - API response data. 

     // parse the result as JSON, since that's what the API provides 
     let getConfig: NSDictionary 
     do { 
      getConfig = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions()) as! NSDictionary 
     } catch { 
      print("error trying to convert data to JSON") 
     } 
+0

stringByAppendingPathComponent не работает в Xcode 7 (устаревшее) .which поэтому я использовал URLByAppendingPathComponent. – jithin

+0

Я использую xcode 7.1. Я не устарел. однако, я обновил код. –

+0

Вы проверили выше пример ?. Исправлена ​​ли ваша проблема @jithin? –

0

Вы не можете писать в пачке вашего приложения , Вместо этого попробуйте записать в каталог документов вашего приложения. Смотрите этот вопрос: Write a file on iOS

+0

@Aron Wojnowski Я попробовал first.Please увидеть мой модифицированный quetion – jithin

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