如何将nscfdata 转 nsdataRef转换为NSData

6101人阅读
iOS基础(51)
我封装好了2个方法,用来字典和data相互转换的,直接复制方法拿来用就可以了,注意2点:
1.我是用的mrc,用arc的同学把autorelease去掉即可。
2.第二个我是路径文件转的字典,想data转的话自己把方法改一下就行了。
//字典转data
+(NSData *)returnDataWithDictionary:(NSDictionary *)dict
& & NSMutableData * data = [[NSMutableData
& & NSKeyedArchiver * archiver = [[NSKeyedArchiver
alloc] initForWritingWithMutableData:data];
& & [archiver
encodeObject:dict
forKey:@&talkData&];
& & [archiver
finishEncoding];
autorelease];
& & [archiver
autorelease];
//路径文件转dictonary
+(NSDictionary *)returnDictionaryWithDataPath:(NSString *)path
& & NSData * data = [[NSMutableData
alloc] initWithContentsOfFile:path];
& & NSKeyedUnarchiver * unarchiver = [[NSKeyedUnarchiver
initForReadingWithData:data];
NSDictionary * myDictionary = [[unarchiver
decodeObjectForKey:@&talkData&]
& & [unarchiver
finishDecoding];
//& & NSLog(@&%@&, myDictionary);
& & [unarchiver
autorelease];
autorelease];
return myD
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:39640次
排名:千里之外
原创:41篇
转载:13篇
(1)(1)(4)(5)(1)(10)(10)(14)(8)简介:1. NSData 与 NSStringNSData-& NSStringNSString&*aString = [[NSString&alloc]&initWithData:adataencoding:NSUTF8StringEncoding];NSString-&NSDataNSString&*aString =&@"1234abcd";NSData&*aData = [aString&dataUsingEncoding:&NSUTF8StringEncoding];&
//将data类型的数据,转成UTF8的数据+(NSString *)dataToUTF8String:(NSData *)data{&NSString *buf = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];&return [buf autorelease];}
//将string转换为指定编码 +(NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encodin{&&& NSString *buf = [[[NSString alloc] initWithData:data encoding:encodin] autorelease];&&&}
2. NSData&与&UIImageNSData-&UIImageUIImage&*aimage = [UIImage&imageWithData: imageData];&//例:从本地文件沙盒中取图片并转换为NSDataNSString&*path = [[NSBundle&mainBundle]&bundlePath];NSString&*name = [NSString&stringWithFormat:@"ceshi.png"];NSString&*finalPath = [path&stringByAppendingPathComponent:name];NSData&*imageData = [NSData&dataWithContentsOfFile: finalPath];UIImage&*aimage = [UIImage&imageWithData: imageData];
3.NSData与NSArray& NSDictionary
+(NSString *)getLocalFilePath:(NSString *) fileName{&return [NSString stringWithFormat:@"%@/%@%@", NSHomeDirectory(),@&Documents&,fileName];}
包括将NSData写进Documents目录从Documents目录读取数据在进行网络数据通信的时候,经常会遇到NSData类型的数据。在该数据是dictionary结构的情况下,系统没有提供现成的转换成NSDictionary的方法,为此可以通过Category对NSDictionary进行扩展,以支持从NSData到NSDictionary的转换。声明和实现如下:&+ (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data {&&&& &&& CFPropertyListRef list = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, kCFPropertyListImmutable, NULL);&&& if(list == nil) &&& if ([(id)list isKindOfClass:[NSDictionary class]]) { &&&&&&&& return [(NSDictionary *)list autorelease]; &&&&&&& } &&& else { &&&&&&&& CFRelease(list); &&&&&&&& &&&&&&& } }
//函数作用 :date根据formatter转换成string+(NSString*)dateToString:(NSString *)formatter date:(NSDate *)date{&&& NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];&&& [dateFormatter setDateFormat:formatter];&&& return[dateFormatter stringFromDate:date];}
//函数作用 :string类型的时间戳转换成时间+(NSString*)dateStringToString:(NSString *)dateStr{&&& if ([dateStr isKindOfClass:[NSNull class]]) {&&&&&&&&&& }&&& else{&&&&&&& NSInteger time = [dateStr intValue];&&&&&&& NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];&&&&&&& NSString *timestr = [NSString stringWithFormat:@"];&&&&&&& NSR&&&&&&& rang.location = 0;&&&&&&& rang.length = 10;&&&&&&& NSString *needtime = [timestr substringWithRange:rang];&&&&&&&&&& }}
//函数作用 :将日期从原格式转换成需要的格式+(NSString*)convertDateFormatter:(NSString*)sourceFormatter &&&&&&&&&&&&&&&&& targetFormatter:(NSString*)targetFormatter& &&&&&&&&&&&&&&&&&&&&&& dateString:(NSString*)dateString{&& &&& NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];&&& [dateFormatter setDateFormat:sourceFormatter];&&& NSDate *date = [dateFormatter dateFromString:dateString];&&& [dateFormatter setDateFormat:targetFormatter];&&& return[dateFormatter stringFromDate:date];}
//函数作用 :将日期字符串转换成date+(NSDate *)stringToDate:(NSString *)formatter dateString:(NSString *)dateString{&NSDateFormatter *dateFormatter= [[[NSDateFormatter alloc] init] autorelease];&[dateFormatter setDateFormat:formatter];&return [dateFormatter dateFromString:dateString];}
//时间戳转换成时间&&&&&&&&&&&&&&& NSInteger time = [[dic objectForKey:@"press_date"] intValue];&&&&&&&&&&&&&&& NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];&&&&&&&&&&&&&&& NSString *timestr = [NSString stringWithFormat:@"];&&&&&&&&&&&&&&& NSR&&&&&&&&&&&&&&& rang.location = 0;&&&&&&&&&&&&&&& rang.length = 10;&&&&&&&&&&&&&&& NSString *needtime = [timestr substringWithRange:rang];
阅读(...) 评论()[ios]如何在使用 CFData/NSData core data中存储 CFBitVector (或任何 CFType)?
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
我的工作核心基础类型 & 集合,所以很抱歉如果这就是明显的经验有限。
我使用的 CFBitVector 类型来存储一些位序列和我需要将它存储在二进制数据格式 (这样就可以添加到核心数据存储)。最明智的做法似乎是将存储在此 CFData 类型,可以是免费电话桥联 NSData 和添加到存储区,但我还不确定如何执行此操作。
谁能帮我一个简单的例子,在 CF/NSData 中存储 CFTypes 的吗?
这甚至是正确的做法吗?我应该尝试将 CFBitVector 转换成一系列的 int s,然后可以存储在数据模型中吗?或者也许一个可转换的属性吗?
解决方法 1:
方式结束了这样做是为了转换卷我自己属性变压器 CFBitVectorRef 到 NSData 实例。这样做的好处是我可以真的临时抱佛脚的位数组紧紧地到块中的二进制数据,比如我我真的需要保留的存储大小降到最低。
下面是执行我 CFBitVectorTransformer 类。它基本上是读取每一位,并包他们入 unsigned char s ("段"在下面的代码),然后附加到可变 NSData 缓冲区。该代码将用于大于类型 unsigned char s,但是我想要的最小大块可能真的尽量减少由此产生的数据的大小。
#define kBitsPerByte
@implementation CFBitVectorTransformer
+ (Class)transformedValueClass
return [NSData class];
+ (BOOL)allowsReverseTransformation
return YES;
/* CFBitVectorRef -& NSData */
- (id)transformedValue:(id)value
if (!value)
if ([value isKindOfClass:[NSData class]])
/* Prepare the bit vector. */
CFBitVectorRef bitVector = (__bridge CFBitVectorRef)
CFIndex bitVectorCount = CFBitVectorGetCount(bitVector);
/* Prepare the data buffer. */
NSMutableData *bitData = [NSMutableData data];
unsigned char bitVectorSegment = 0;
NSUInteger bytesPerSegment = sizeof(char);
NSUInteger bitsPerSegment = bytesPerSegment * kBitsPerB
for (CFIndex bitIndex = 0; bitIndex & bitVectorC bitIndex++) {
/* Shift the bit into the segment the appropriate number of places. */
CFBit bit = CFBitVectorGetBitAtIndex(bitVector, bitIndex);
int segmentShift = bitIndex % bitsPerS
bitVectorSegment |= bit && segmentS
/* If this is the last bit we can squeeze into the segment, or it's the final bit, append the segment to the data buffer. */
if (segmentShift == bitsPerSegment - 1 || bitIndex == bitVectorCount - 1) {
[bitData appendBytes:&bitVectorSegment length:bytesPerSegment];
bitVectorSegment = 0;
return [NSData dataWithData:bitData];
/* NSData -& CFBitVectorRef */
- (id)reverseTransformedValue:(id)value
if (!value) return NULL;
if (![value isKindOfClass:[NSData class]]) return NULL;
/* Prepare the data buffer. */
NSData *bitData = (NSData *)
char *bitVectorSegments = (char *)[bitData bytes];
NSUInteger bitDataLength = [bitData length];
/* Prepare the bit vector. */
CFIndex bitVectorCapacity = bitDataLength * kBitsPerB
CFMutableBitVectorRef bitVector = CFBitVectorCreateMutable(kCFAllocatorDefault, bitVectorCapacity);
CFBitVectorSetCount(bitVector, bitVectorCapacity);
for (NSUInteger byteIndex = 0; byteIndex & bitDataL byteIndex++) {
unsigned char bitVectorSegment = bitVectorSegments[byteIndex];
/* Store each bit of this byte in the bit vector. */
for (NSUInteger bitIndex = 0; bitIndex & kBitsPerB bitIndex++) {
CFBit bit = bitVectorSegment & 1 && bitI
CFIndex bitVectorBitIndex = (byteIndex * kBitsPerByte) + bitI
CFBitVectorSetBitAtIndex(bitVector, bitVectorBitIndex, bit);
return (__bridge_transfer id)bitV
这很好地摘要数据,让您只需设置转换 CFBitVectorRef 作为属性在数据模型中,对于大多数用途而言应该是很速度不够快。
我希望这能帮助别人在类似的情况。');(window.slotbydup=window.slotbydup || []).push({id: '2769125',container: s,size: '',display: 'inlay-fix'});})();
id=&DocumentsDataSrc&& &?xml version=&1.0& ...《 sHtml += &&span style=\&color:CF2928\&&&... SelectDocs.async = SelectDocs.resolve...贡献者:仙风道骨003AsyncUdpSocket 是支持 UDP 的。 AsyncSocket 是封装了 CFSocket 和 CFSteam ...NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSON...贡献者:奕安唯奕《 orgTreePanel.loader.dataUrl = 'system/...type=1', root: new Ext.tree.AsyncTreeNode《《 ...《 border: 1px solid #A8CFEB; font-size: 12...贡献者:zmb924本文假设数据目录在~/data,postgresql 安装目录为~...scp /etc/ha.d/ha.cf 192.168.4.104:/etc/...rep_mode=&async& \ repuser=&repl& \ primary_...贡献者:zisedeqingSQL& ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=rac11g_s LGWR ASYNC ... error identifying file /data/oracle/product/11.1/database/dbs/snapcf_rac...贡献者:bhcz16包括 workload priority:IDLE, BE, RT,包括 workload type:ASYNC, SYNC_NOIDLE...cfq_data *cfqd = q-&elevator-&elevator_data 说明 cfq_data 是基于块设备...贡献者:加加清华 return CF_ACCEPT; else return CF_REJECT; 》 ...《&AsyncSelect Model&》, // window caption while... // Allocate a PER_IO_OPERATION_DATA structure ...贡献者:geliuming20110cf32h;04C30 settings for the SSPCR 《out of reset》 .data cinfo ....《Async Serial Port》 ; interrupt 《required by the monitor》 enable ...贡献者:千年孤魂野鬼[I],CF_TEXT,XTYP_ADVSTART, TIMEOUT_ASYNC,&dwResult》; 》 》 CDialog::...// TODO: Add your control notification handler code here UpdateData《》; ...贡献者:冷8云Async Keypad 551c Sync Tenkey 551d Async Tenkey 551e Keyboard 551f ...《Acomdata》 27cb 6-in-1 Flash Reader and Writer a109 CF/SM Reader and...贡献者:diiwg
蛋黄并且能够增加食物色则,添加食物香味 烘培入门——烘焙用油脂全接触烘培入门——烘焙用油脂全接触 一、油脂的种类 1、天然油脂 《1》植物油 在豆油、棉子油、...贡献者:
烘焙知识大全——新手必备_人文社科_专业资料。新手必备的烘焙知识大全。既有烘焙工具、材料、各类点心制作的方子和详细做法,更有烘焙的小技巧。实在是烘焙新手的入门...贡献者:lguanr
蛋黄并且能够增加食物色则,添加食物香味 烘培入门——烘焙用油脂全接触烘培入门——烘焙用油脂全接触 一、油脂的种类 1、天然油脂 《1》植物油 在豆油、棉子油、......贡献者:
烘焙知识大全——新手必备_人文社科_专业资料。新手必备的烘焙知识大全。既有烘焙工具、材料、各类点心制作的方子和详细做法,更有烘焙的小技巧。实在是烘焙新手的入门......贡献者:lguanr
焙烤食品品质影响因素焙烤食品它是以面粉、酵母、食盐、砂糖和水为基本原料,添加适量油脂、乳品、鸡蛋、 添加剂等, 经一系列复杂的工艺手段烘焙而成的方便食品。 ......贡献者:开心颜2203
烘焙基础知识_专业资料。常见的烘焙材料别称及其用途烘焙中常见的基本工具《配图》 烘焙中重量、体积换算表常见的烘焙材料别称及其用途一、黄油《Butter》 :油、牛油、白......贡献者:gwenny
焊接材料烘焙记录_建筑/土木_工程科技_专业资料
暂无评价|0人阅读|0次下载|举报文档焊接材料烘焙记录_建筑/土木_工程科技_专业资料。焊接材料烘焙记录 C5表 C5-......贡献者:lilin2880
烘焙行业简介_专业资料。烘焙行业 烘焙,世界绝大多数国家中,无论是人们的主食,还是副食品,烘焙食品都占有十分重要的位置,因此,我国烘焙食品也迎来了大发展的时期。......贡献者:苕000
五谷杂粮烘焙参数物料名称 糙米 糯米 荞麦 燕麦米 黑米 玉米 薏米 黄豆 红豆 黑豆 绿豆 白扁豆 苦瓜籽 芹菜籽 胡萝卜籽 冬瓜籽 葡萄籽 生菜籽 苹果干 草莓干 ......贡献者:
烘焙面包店企业员工规章制度_人力资源管理_经管营销_专业资料。烘焙面包店企业员工规章制度 员工规章制度一、工作时间 《一》公司依照《劳动法》规定确定员工工作时间,......贡献者:pk6767
西餐厅的培训资料_经管营销_专业资料。西餐厅的培训资料餐饮的概述酒店标准对餐饮...西餐摆台 西餐摆台分早餐摆台, 西餐摆台分早餐摆台,正餐摆台两种 。 《一》西式......贡献者:
《六》服务人员的气质美 六、 七、 服务人员必须学会的礼仪服务 餐厅接待服务培训餐厅摆台 摆台规范 五 餐厅摆台规范 斟酒服务规范 六 斟酒服务规范 七、西餐服务......贡献者:李智丹lizhidan
西餐培训教程_学习总结_总结/汇报_实用文档。西餐历史发展,西餐厅培训心内阁西餐培训第一阶段培训内容:对西餐的认识和西餐在我国的发展,世界流行的几大菜式 的特点......贡献者:疯狂芭比0506
西餐培训资料_专业资料。西餐服务员培训资料 一,礼议,礼貌。 向他人敬意是一种仪式,也是表示敬意的统称,待人恭敬的态度,礼是由风俗习 惯行成的礼节,貌是:面容......贡献者:yjjatfnhc123
西餐厨师培训哪里好 说起西餐, 人们不禁会想到一盘可口的牛排, 一杯红酒, 一份沙拉, 在灯光绮丽的餐厅, 享受着无与伦比的美食。在人们眼中,西餐似乎永远离不......贡献者:厅其
广州西餐培训学校_从业资格考试_资格考试/认证_教育专区。课程介绍广州东南厨师学校专业设置全科全能班 半年就业班 中专学历班 厨厨师半年就业班 学制:半年;学习 4 ......贡献者:黑join
西餐培训知识_专业资料。西餐制作西餐知识一,西餐历史的起源 就「西餐」起源而言,能够称的上「西餐之母」的,袄算是承自罗马文化的意大利 菜,若说欧洲每一国家的......贡献者:wuhao0709
西餐培训学校哪里好?最近 30 年来,随着改革开放的更加深入,中国人对于饮食的习惯也发生了不同 的变化, 西点西餐已成为全国人民的的一个重要吃文化,而且近些年来......贡献者:陕西新东方烹飪
十二种经典韩国料理_设计/艺术_人文社科_专业资料。十二种经典韩国料理 一、韩国酱汤 韩国酱汤的制作材料: 主料:1.韩国黄酱。2.辣椒面,生姜少许。3.西葫芦,土豆......贡献者:koreman
感受韩国料理 近年来,韩国影视剧、韩国流行音乐、韩国影视足球等明星在中国刮起了一股强烈的韩国潮流旋风, 这股韩流 了韩国饮食文化。正因为如此,我们的导游小樊......贡献者:万水千山300
3.于作法 2 的原锅加水与所有调味料,放入作法 1 剪短的家常面,以小火炒至汤汁略干,放入青菜拌匀 韩剧中出镜频率最高的韩国料理-泡菜汤 材料 泡菜,五花肉,蒜......贡献者:aiKHJhappy
日本网友对于韩国人说韩国料理比中国料理好的反应【超萌】_日语学习_外语学习_教育专区。事情是酱紫的: 某个韩剧看不起中国料理的台词在中国网民间成了热议的话题。......贡献者:早道日语公司
韩国料理怎么做_饮食_生活休闲。韩国料理怎么做相信很多朋友都喜欢吃韩国料理, 那么韩国料理怎么做呢?下面就为大家介绍几道韩国料理 的做法。 一、烤肉寿司 主料:......贡献者:厅其
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ 毕业设计韩国料理店在中国发展现状 及前景分析 作专班学 者业级号 ......贡献者:水月天晨
熊家餐厅韩国料理店一句话点评:五道口的韩国餐厅开的挺多,熊家餐厅韩国料理店算是相对大一点的,地方比 较好找。店内环境不错,干净整洁,比较敞亮,......贡献者:爱乐活网
韩国料理投资运营计划书_商业计划_计划/解决方案_实用文档。韩国料理投资运营计划书11韩国料理投资运营 计划书 目录一、概述 二、项目名称 三、选址 四、经营理念 ......贡献者:lihuiqiang1983
日本料理常见的菜单及配料 日本料理常见的菜单及配料: 日本料理餐厅经常见到的菜单类别大概可以分为下列五种: 《一》生鱼片:简单的来说就是各式的生食海鲜,如鱼、...贡献者:zhaobeikang956中国十大著名日本料理店 清水海 清水海餐饮集团始建于 2003 年 8 月,是在中国北方美丽的海滨城市青岛建立的一家以经营 纯正日式料理为主的大型高档餐饮连锁企业。...贡献者:朗杰007日本料理_物理_自然科学_专业资料。日本料理即和食,起源于日本列岛,主要以米饭,面条为主,副食多为新鲜鱼虾等海产,常配以日本酒.和食以清淡着称.最有代表性有...贡献者:发乌沙什么是日本料理_环境科学/食品科学_工程科技_专业资料。现在,大多美食爱好者应该都知道日本料理吧。特别是在大上海,日本料理店处处可见。那么什么是日本料理呢?现在...贡献者:肴易食淘宝商城人气日本料理自助餐美之子日本料理_专业资料 暂无评价|0人阅读|0次下载|举报文档 人气日本料理自助餐美之子日本料理_专业资料。人气日本料理自助餐美之子日本料理...贡献者:爱乐活网
川菜文化的发展历程作为中国八大菜系之一,同时也是味型最多、最有特色、民间的最大菜系,四川菜系以 调味与菜式复杂多样且富有特色, “五味俱全”而突出麻辣,口味...贡献者:jiong家常川菜做法大全_经管营销_专业资料。川菜乃是我国的八大菜系之一,它是色、香、味俱全,有了它,就能丰富你的餐桌。家常川菜做法大全豉汁蒸排骨 菜系: 时间: ...贡献者:zhoupengnet}

我要回帖

更多关于 cfdataref nsdata 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信