NSUserDefaults 将数据存储在 iOS 应用程序的什么位置?在应用程序中分配许多 NSUserDefaults 变量是一种好的编程习惯吗?或者它会导致任何内存管理问题。?什么时候释放这个变量。?
5 回答
它存储在设备的目录结构中。我使用 NSUSerDefaults 来存储不需要非常安全的变量,例如用户名、地址等。对于更安全的信息(例如:密码),您可以使用钥匙串来存储信息。
Users/username/Library/Application Support/iPhone Simulator/5.0/Applications/你的应用唯一id/Library/com.appname
NSUserDefaults
这是使用 Simulator 时存储data() 的路径。
当您从设备中删除应用程序时,NSUserDefaults 中的数据将被删除。
总是首选使用 NSUserDefaults 来存储应用程序的用户特定首选项。这些值以 plist 格式存储在设备上。您无需担心为 NSUserDefaults 存储的数据释放内存。一旦您调用 [[NSUserdefaults ..] synchronize] 方法,它们就会与 plist 同步。
您唯一需要担心的是不要使用 NSUserDefaults 来存储密码等敏感信息。由于可以通过将设备直接连接到 mac 并使用可用的第三方软件访问应用程序空间(沙盒)来访问此 plist。
NSUserDefaults 的物理位置是:
/Library/Preferences/com.yourcompany.appName.plist
有关更多信息,请参阅:
这里给大家分享一下代码,在viewDidLoad里写下来,就可以得到路径了。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSLog(@"%@",paths);