Ios 关于路径的建议:Coredata vs NSDefault
我目前正试图在使用Ios 关于路径的建议:Coredata vs NSDefault,ios,core-data,nsuserdefaults,Ios,Core Data,Nsuserdefaults,我目前正试图在使用CoreData和NSUserDefaults之间做出选择。我试图存储两个数组,并能够删除和写入它们。根据我的研究,NSUserDefaults只允许NSArrays,这意味着一旦它们被创建,我就无法更改它们。但是,我认为解决这个问题的一种方法是简单地保存数组中的所有数据,将其删除,然后将其重新保存为新数组。想法 实际上,NSUserDefault的作用与您的iDevice中的设置应用程序一样。它用于存储一些设置数据,而不是作为数据库。由于它类似于字典的语法,许多开发人员使用它
CoreData
和NSUserDefaults
之间做出选择。我试图存储两个数组,并能够删除和写入它们。根据我的研究,NSUserDefaults
只允许NSArray
s,这意味着一旦它们被创建,我就无法更改它们。但是,我认为解决这个问题的一种方法是简单地保存数组中的所有数据,将其删除,然后将其重新保存为新数组。想法 实际上,NSUserDefault
的作用与您的iDevice中的设置应用程序一样。它用于存储一些设置数据,而不是作为数据库。由于它类似于字典的语法,许多开发人员使用它方便地存储小块数据,而不是存储苹果建议的设置数据。NSUserDefault的设计不适合处理繁重的I/O,因此不能将其视为正常的数据库使用。基于以上几点,您可以根据需要选择要使用的内容。有3个选项可用于保存数据
- NSUSerDefault
- 文件系统
- 核心数据
let documents = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
let filePath = documents.stringByAppendingPathComponent("file.plist")
let array: NSArray = [1, 2, 3]
let res = array.writeToFile(filePath, atomically: true)
let array2 = NSArray(contentsOfFile: filePath)
Swift 2.0stringByAppendingPathComponent
在Swift 2.0中不推荐使用使用
FileManager
和NSURL
let documents = NSFileManager.defaultManager().URLsForDirectory(.DocumentationDirectory, inDomains: .UserDomainMask)[0]
let fileUrl = documents.URLByAppendingPathComponent("file.plist")
let array: NSArray = [1, 2, 3]
let res = array.writeToURL(fileUrl, atomically: true)
let array2 = NSArray(contentsOfURL: fileUrl)
在
NSUserDefaults
和核心数据之间进行选择应该很简单NSUserDefaults
用于存储用户首选项之类的小块数据。核心数据是用于管理大量数据的数据库系统。如果只有几个字符串要保存,请使用NSUserDefaults
。如果要维护大量数据,那么就需要核心数据。如果您有介于两者之间的内容,请查看plists或JSON文件。谢谢。为了澄清一下,为了重写数组,我只需将数组设置为新值?另外,file.plist是存储数组的文件吗?是,它存储在文档目录中的file.plist中。要重写数据,只需再次调用save,它将替换文件的内容Hey Kostiantyn您是否可以将其更新为Swift 2.0?我花了最后一天的时间试图转换它,但运气不好。非常感谢。你好@SnarfSnarf我添加了Swift 2.0示例