首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否可以将NSData(从NSKeyedArchiver获取)保存为NSString,然后读回为NSData?

可以将NSData保存为NSString,然后再将NSString读回为NSData。这个过程称为数据的编码和解码。

编码过程:

  1. 使用NSKeyedArchiver对NSData进行编码,将其转换为NSData对象。
  2. 将NSData对象转换为NSString对象,可以使用Base64编码或其他编码方式。

解码过程:

  1. 将NSString对象转换为NSData对象,可以使用Base64解码或其他解码方式。
  2. 使用NSKeyedUnarchiver对NSData进行解码,将其转换为原始的NSData对象。

这种方法可以用于将NSData对象存储在文本文件、数据库或网络传输中。但需要注意的是,编码和解码过程可能会导致数据大小的增加,并且可能会损失一些原始数据的精确性。

在腾讯云中,可以使用对象存储服务 COS(Cloud Object Storage)来存储和管理数据。COS提供了简单、安全、可靠的存储解决方案,适用于各种场景,包括数据备份、图片和视频存储、日志存储等。您可以使用COS的API或SDK来上传、下载和管理数据对象。

腾讯云COS产品介绍链接:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS应用数据存储(数据持久化)的常用方式一、iOS数据持久化方式二、应用沙盒(应用程序的文件夹)三、使用方法

归档(NSCoding),可以把任何对象, 直接保存为文件的方式。...注意: 必须遵守NSCoding协议的对象才可以进行归档解档,默NSString、NSDictionary、NSArray、NSData、NSNumber等类型已遵守NSCoding协议,可以直接归档解档...,但有时候可能想将多个对象写入到同一个文件中,那么就要使用NSData来进行归档对象,NSData可以为一些数据提供临时存储空间,以便随后写入文件,或者存放磁盘读取的文件内容。.../ 数据区连接到一个NSKeyedArchiver对象 NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData...[data writeToFile:path atomically:YES]; (2) 解档步骤 // 文件中读取数据 NSData *data = [NSData dataWithContentsOfFile

2.6K70
  • 归档

    归档 基本概念 - 对象归档是指将对象写入文件保存在硬盘上,当再次重新打开程序时,可以还原这些对象。你也可以称他对象序列化,对象持久化。...数据持久性的方式 NSKeyedArchiver --- 对象归档 NSUserDefaults 属性列表化(NSArray、NSDictionary保存文件) SQlite数据库、Core Data数据库...示例 归档(序列化) //对数组进行归档,归档文件名为temparray 后缀名可以任意 NSString *homeDirectory = NSHomeDirectory(); NSArray *...实例作为归档的存储数据 添加归档的内容(设置key与value) 完成归档 归档数据存入磁盘中 解归档 磁盘读取文件,生成 NSData 实例 根据 Data 实例创建和初始化解归档实例 解归档,...:@"data.archive"]; 解归档 //解归档 NSData *data = [NSData dataWithContentsOfFile:directoryA]; NSKeyedUnarchiver

    1.2K60

    iOS常用的数据存储方式

    归档NSArray 5.1 FMDB例子 5.2 例子2:利用NSData归档2个Person对象到同一文件中 5.3 例子3:利用NSData实现深copy 6.1 基本用法 6.2 数据库缓存性能进行优化...iTunes同步设备时会备份该目录 1.2 应用沙盒目录的获取方式 tmp: FOUNDATION_EXPORT NSString *NSTemporaryDirectory(void); 沙盒根目录...再存 setObject NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model]; [[NSUserDefaults...比如,我们可以在Keychain中存储用户名、密码等信息。 Keychain的安全机制系统层面保证了存储的敏感信息不会被非法读取或者窃取。...Keychain的特点如下: 1、保存在Keychain中的数据,即使应用程序被卸载,数据仍然存在;重新安装应用程序,我们也可以Keychain中读取这些数据。

    1.9K20

    【IOS开发基础系列】数据持久化专题

    : fileName];      return filePath; }     获取tmp目录         获取应用程序的tmp目录要比获取Documents目录容易的多。...: @"properties.plist"]; 3 对象归档 3.1 对象归档         “归档”是值的另一种形式的序列化,对模型对象进行归档的技术可以轻松复杂的对象写入文件,然后再从中读取它们...sqlite3_bind_text(statement, 1, [studentId.textUTF8String], -1, NULL);         是绑定参数,第2个参数序号(1开始),第...3个参数字符串值,第4个参数字符串长度。...第5个参数一个函数指针,SQLITE3执行完操作后调此函数,通常用于释放字符串占用的内存。         sqlite3_step(statement) !

    24620

    编码篇-持久化NSUserDefaults

    NSUserDefaults我们封装了读写plist文件的常用操作,我们可以使用它来保存一些简单的数据,比如系统配置,用户设置的参数之类的。...获取当前沙盒的Documents路径 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask...Attempt to insert non-property list object 报错原因, NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值。...此时依然是'color'=='red'; 储存自定义对象 使用归档存储(真的储存) 一个NSUserDefaults的对象必须是属性表,这也就是说我们可以存储NSData,NSString,NSNUmber...如果你想存储其他类型的对象,我们可以将其归档并创建一个NSData来实现存储。

    1.2K10

    iOS数据持久化

    (第一个参数)和指定的作用域(第二个参数)以及 BOOL 类型的参数来确定是否返回完整路径,该函数的返回值类型数组。...", imagePath ) ; // 获取存储文件的 Documents 文件夹路径 NSString *docPath = filePaths.lastObject; // text文件路劲的生成...写入文件(可以写入文本字符串,音频,视频,图片等等) NSString *dataPath = [docPath stringByAppendingPathComponent:@"soYBAFVSEQ2IVhkZAA6sj5uH4wQAAAVIgLO86QADqyn976...NSString *contentStr = nil; // 通过文件管理对象判断指定文件路劲的文件是否存在 if ([filManager fileExistsAtPath:textFilePath]...:self.gender forKey:@"GENDER"]; [aCoder encodeInteger:self.age forKey:@"AGE"]; } // 解码方法,是在反归档的时候NSData

    50900

    iOS数据持久化之二——归档与设计可存储化的数据模型基类

    plist文件,而rootKey是系统我们创建的一个默认的归档键值。...说起来比较复杂,举个例子就十分清晰了:     NSString *homeDictionary = NSHomeDirectory();//获取根目录     NSString *homePath  ...    NSData *data= [NSKeyedArchiver archivedDataWithRootObject:@"123"];     [data writeToFile:homePath... = NSHomeDirectory();//获取根目录     NSString *homePath  = [homeDictionary stringByAppendingPathComponent...四、志同道合的朋友分享         这个model集成在了我的一个开源的开发框架中,当然,那里面也综合和许多许多这样方便开发者使用的功能,如果你感兴趣,可以在https://github.com/

    1.1K30

    控制器和应用数据存储

    ,例如给下一个控制器传值 3、ios应用常用的数据的存储方式主要有:    1)、plist (利用xml属性列表归档NSDictionary、NSArray、NSData、NSNumber等系统类型数据...保存应用运行时生成的非重要的需要持久化的数据,iTunes同步设备时不会备份该目录;    5)、Library/Prefences保存应用的所有偏好设置,iTunes同步设备时会备份该目录    测试获取应用程序沙盒下和真机下...*.plist文件中 - (IBAction)savePlist:(id)sender{ //沙盒Documents文件夹路径 最后那个参数expandTilde代表是否展开完整路径 NSString...可以为一些数据提供临时存储空间,以便随后写入文件,或者存放磁盘读取的文件内容 NSMutableData *data = [NSMutableData data]; //新建一块可变数据区...//数据区连接到一个NSKeyedArchiver对象 NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData

    79830

    点进来你就懂的iOS数据存储

    可存储的数据类型:NSDataNSString、NSNumber、NSDate、NSArray、NSDictionary等等对象类型。...如果其他类型的数据存储可以转化成以上数据类型之后再做存储,例如UIImage图片可以转化成NSData形式来存储。...如果你想立刻就存储,推荐这样做) 写入文件: 下面第一种提到的数据类型都可以转成NSData(二进制数据流)的形式写进一个文件,然后将此文件存储到沙盒自建目录下,以便下次获取时使用。...沙盒文件格式 2、写入文件 可存储的数据类型:任何可以转化成NSData的数据或者文件 存储方法:获取文件存储的沙盒路径(以document例 不建议存储到tmp,它只是提供一个即时创建临时文件的地方...NSData写入文件 [data writeToFile:saveFilePath atomically:YES]; (左右滑动查看全部代码) 获取方法:通过NSData的类方法 + (nullable

    2K10

    iOS序列化的进阶方案——Protocol Buffer

    在本地存储时,我们可以使用YYModel将对象转成json对应的NSData,也可以使用NSKeyedArchiver结合实现NSCoding协议把对象转成NSData,进而将二进制数据存储在沙盒中或者数据库...+NSKeyedArchiver在序列化数据量较大的情况下性能不佳,YYModel在变动的时候不太友好。...message,第一行是声明proto的版本,然后添加两个属性itemId和itemContentStr; 使用的时候,用[LYItemData parseFromData:data error:nil];可以...NSData转换成对象,访问LYItemData类的data属性,可以拿到其序列化之后的二进制数据; 代码很简单, 序列化和反序列化都只有一行,使用样例: NSString *path = [...,包括数组、map等; 定义数组使用repeated,表示该元素是重复的,数量0到若干个不等; 定义字典使用map,map里面带两个参数,分别表示key和value的type; message LYArrayData

    1.7K20

    SDWebImageV3.7.5源码解析

    否则直接这个object字典中删除。 至此,取消当前图片下载步骤完毕。 重点二 调用SDWebImageManager,创建下载图片的operation。...该方法有两个参数,第一个参数传key,第二个参数是个block,是本地取出缓存的图片后的调。内部实现部分分析: 6.1 判断参数是否完整,否则直接返回cacheOperationnil。...** 解析磁盘获取缓存图片:** - (UIImage *)diskImageForKey:(NSString *)key { NSData *data = [self diskImageDataBySearchingAllPathsForKey...第五六行,如果shouldDecompressImagesYES,默认就是YES,表示是否解码图片,NSData转换的image,会在第一次渲染到屏幕上的时候才进行解码,并且每次NSData读取时...关于图片的缓存和解码可以看这里:iOS 处理图片的一些小 Tip 关于图片的解码过程可以看这篇C语言文章:JPEG图像的解压缩操作 6.4 解码后的图片保存到缓存memCache中,便于以后直接从缓存中获取

    83330

    iOS缓存 NSCache详解及SDWebImage缓存策略源码分析你要知道的NSCache都在这里

    个,输出可以看出,当我们要添加第六个对象时NSCache自动删除了我们添加的第一个对象并触发了NSCacheDelegate的调方法,添加第七个时也是同样的,删除了缓存中的一个对象才能添加进去。...由于篇幅的问题,本文源码中的英文注释删掉了,有需要的读者可以对照着注释源码查阅本文章。...NS_ENUM(NSInteger, SDImageCacheType) { //不是从缓存中拿到的,网上下载的 SDImageCacheTypeNone, //磁盘中获取的...SDImageCacheTypeDisk, //内存中获取的 SDImageCacheTypeMemory }; //查找缓存完成后的调块 typedef void(^SDCacheQueryCompletedBlock...*)imageData forKey:(nullable NSString *)key { //判断图片NSData数据以及图片key是否空,如果空直接返回 if (!

    3.8K93
    领券