2016-04-23 2 views
0
func readWriteData(){ 

     let paths = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true) 
     let cachePath = paths.first 
     //  let bundleName = NSBundle.mainBundle().infoDictionary?["CFBundleVersion"] as? String 
     let filePath = NSURL(fileURLWithPath: cachePath!).URLByAppendingPathComponent("cachedProducts.plist").path 
     var isDir : ObjCBool = false 
     var error: NSError? 
     if NSFileManager.defaultManager().fileExistsAtPath(filePath!, isDirectory: &isDir) { 
      var plistArray = NSArray(contentsOfFile: filePath!) 
      print(plistArray)//retrieving stored data 


     }else { 
      do { 
       try NSFileManager.defaultManager().createDirectoryAtPath(filePath!, withIntermediateDirectories: false, attributes: nil) 
       var cachedArray = [AnyObject]() 
       cachedArray.append("Harsh") 
       let cachedProductarray : NSArray = cachedArray 
       cachedProductarray.writeToFile(filePath!, atomically: true) 
       //Storing data to plist 


      } catch let error as NSError { 
       NSLog("\(error.localizedDescription)") 
      } 
     } 
} 

, когда я пытаюсь напечатать plistArray, он возвращает нуль. Пожалуйста, помогите мне с решением. Я попробовал это, используя cachesDirectory и Document Directory, это один и тот же сценарий с обоимиЧтение Запись данных массива в plist не работает

ответ

0

Каталог кеша должен быть создан по адресу cachePath, а не filePath.

Вместо того чтобы использовать довольно примитивный writeToFile метод NSArray я бы рекомендовал использовать NSPropertyListSerialization в сочетании с методом NSData «s writeToFile:options:error (еще лучше writeToURL...), чтобы получить осмысленные сообщения об ошибках.

+0

вар ул: NSString = "asgg" делать { попробовать str.writeToFile (Filepath !, атомарно: правда, кодирование: NSUTF8StringEncoding) } поймать пусть ошибку как NSError { печать ("\ (error.localizedDescription)") } Когда я пытаюсь написать NSString, это говорит: «Файл cachedProductsssssss.plist» не может быть сохранен в папке «Cache» –

+0

Распечатайте пути и проверьте, являются ли они теми, которые вы ожидаете. – vadian

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

  • Нет связанных вопросов^_^