iOS一般数据存储方法

2019-08-01  本文已影响0人  罂粟之城

应用程序只需要保存程序参数、选项相关的少量数据使用。

用户可以使用NSUserDefaults进行相关的参数设置即实现在应用程序中读取、保存应用程序参数,这是除来Settings Bundle设置参数的第二种方法。

    NSUserDefaults是一个单例类,每个应用程序只有一个NSUserDefaults对象。
    NSUserDefaults使用:
        1. NSUserDefaults *default=[NSUserDefaults standardUserDefaults];
        2. 然后点使用[default objectForKey:defaultName
                                /setObject:value forKey:defaultName
                                /setBool:value forKey:defaultName
                                /setxxx:value forKey:defaultName
                                /stringForKey:defaultName
                                /xxxForKey:defaultName;
        3. 然后对更新的数据值进行保存:[defaults synchronize];

最后就保存在来应用程序中的沙盒中了,就是进行了一点点的数据保存或者是参数的设置。

应用程序只有少量数据需要保存。

专门用于资源有限的设备上,适量数据存取。iOS SDK很早就支持SQLite,在使用时只需要加入libsqlite3.dylib依赖以及导入sqlite3.h头文件即可,但是原生的SQLite在使用时非常不方便,所以后来开源社区出现了一系列将SQLite进行封装的库,而FMDB则是其中的优秀者。

应用程序沙盒:

应用程序的沙盒就是iOS应用程序只能在系统为该应用所分配的文件区域下读/写文件的这个区域。该应用的所有非代码文件都要保存在此,例如:图像、图标、声音、属性列表、文本文件等。

打开模拟器沙盒目录:
     文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,它的目录其实是Library。
  方法1、可以设置显示隐藏文件,然后在Finder下直接打开。设置查看隐藏文件的方法如下:打开终端,输入命令:
        显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
        隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
        输完单击Enter键,退出终端。
    重新启动Finder就可以了 重启Finder:鼠标单击窗口左上角的苹果标志-->强制退出-->Finder-->现在能看到资源库文件夹了。
打开资源库后找到/Application Support/iPhone Simulator/文件夹。这里面就是模拟器的各个程序的沙盒目录了。
//
  方法2.或在Finder上点->前往->前往文件夹(cmd+shift+G),输入"/Users/用户名/Library/Application Support/iPhone Simulator/ "前往。

获取应用程序沙盒各文件目录:

#pragma mark - ---- get iOS-App some file path ----
+ (NSString *)getDocumentFilePath{
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
+ (NSString *)getLibraryFilPath{
    return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
}
+ (NSString *)getCacheFilePath{
    return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
}
上一篇 下一篇

猜你喜欢

热点阅读