美文网首页
iOS数据本地化

iOS数据本地化

作者: 一代骄马 | 来源:发表于2018-05-25 11:08 被阅读48次

    1.NSUserDefaults

    2.归档   浅谈iOS本地数据保存 - 简书

    使用NSKeyedArichiver /ɑːkaɪv/进行归档、NSKeyedUnarchiver进行接档,这种方式会在写入、读出数据之前对数据进行序列化、反序列化操作。

    //归档:对象->NSData的过程

    //解归档:NSData->对象的过程;

    //对数据的操作效率不高,不建议存储大量的数据

    //任何对象实现归档需要遵循NSCoding 协议,NSArray NSString NSDictionary 已经遵守了协议 直接归档即可;

    BOOL isSuccessed= [NSKeyedArchiver archiveRootObject:array toFile: @""];

    NSArray *tmp=(NSArray *) [NSKeyedUnarchiver unarchiveObjectWithFile:@""];

    //任意对象的归档  需要遵守归档协议 NSCoping,并实现归档和解归档的方法(encodeWithCoder和initWithCoder)再分别对类中的变量进行归档和解归档;

    3.文件保存

    4.数据库sqlite3:

        fmdb

    CoreData

    CoreData提供了一种“对象-关系映射”的功能,能将OC对象转化成数据,保存Sqlite中。CoreData的好处就是能够合理管理内存,避免sql语句的麻烦(不用写sql语句)。

    5.NSUrlCache

    6.KeyChain(钥匙串)等多种方式 (与沙盒无关)

    沙盒目录

    fmdb

    FMDB - 潜意识 - 博客园

    它是对libsqlite3框架的封装,用起来的步骤与SQLite使用类似,并且它对于多线程的并发操作进行了处理,所以是线程安全的。

    FMDB框架中重要的框架类

    FMDatabase

    FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQL语句

    FMResultSet使用FMDatabase执行查询后的结果集

    FMDatabaseQueue用于在多线程中执行多个查询或更新,它是线程安全的

    2.keychain

    SFHFKeychainUtils

    相比于NSUserDefaults来说,KeyChain保存更为安全,而且KeyChain里面保存的数据不会因为app删除而丢失。

    KeyChain还有一个用途,就是替代UDID。UDID已经被废除了,所以只能用UUID代替,所以我们可以把UUID用KeyChain保存。

    来源:iOS Keychain(钥匙串) 原理和APP之间共享信息(例如:账号密码) - freestyle个人页面 - 开源中国

    ##关于共享 Keychain的数据可以透过Group Access的方式,让资料可以在App间共享,Google系列的App (Gmail、Google+、日历…)就是通过这样的方式来记录使用者登入信息,只要使用者在其中一个App中完成登入了,其他的App也可以读取到同相的登入咨询进行登录。 ###进入Capabilities,将Keychain打开 

    开启Keychain后,会自动新增一个Keychain Group,使用的是Bundle Identifier。 同时也会自动新增一个entitlements文件,里面也会有一个Access Group,名为 $(AppIdentifierPrefix)+你的bundleID 

    (AppIdentifierPrefix)可以是开发者的代号需要登录才会有,也就是开发者证书后小括号的内的英文数字组合。使用$(AppIdentifierPrefix)只能被同一个开发者账号的app来存取,以防被有心人盜取。 

    相关文章

      网友评论

          本文标题:iOS数据本地化

          本文链接:https://www.haomeiwen.com/subject/qwuyjftx.html