OC基础数据类型-NSData-NSMutableData-NSString
NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。NSData创建后不可以再修改,NSMutableData可以再次修改。
1.NSString和NSData之间的转换
//NSString转换成NSData类型NSString * str = @"hello, world!";NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%s", data.bytes);//NSData转换成NSString类型NSString * newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"%@", newStr);
2.UIImage和NSData之间的转换
//获取图片路径NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"01loading.png" ofType:nil];NSData *imgData = [NSData dataWithContentsOfFile:imgPath]; //直接使用,也可写入文件 self.imageView.image = [UIImage imageWithData:imgData];1>.数据库里存储图片 存储图片路径 /images/car@2x.png;2>.如果图片是较小的 可以将UIImage转换成NSData存数据库。
3.NsMutableData 使用
NsMutableData* md = [NSMutableData data]; NSMutableData* md=[[NSMutableData alloc]initWithLength:100]; //追加data内容: [md appendData: dt]; //设置Data内容: [md setData:dt]; //变更size内容: [md setLength:50];
4.NSString 使用
//1、创建常量字符串NSString *astring = @"This is a String!";//2、创建空字符串,给予赋值。NSString *astring = [[NSString alloc] init]; astring = @"This is a String!"; [astring release]; NSLog(@"astring:%@",astring);//3、在以上方法中,提升速度:initWithString方法NSString *astring = [[NSString alloc] initWithString:@"This is a String!"]; NSLog(@"astring:%@",astring); [astring release];//4、用标准c创建字符串:initWithCString方法char *Cstring = "This is a String!"; NSString *astring = [[NSString alloc] initWithCString:Cstring]; NSLog(@"astring:%@",astring); [astring release];//5、创建格式化字符串:占位符(由一个%加一个字符组成)int i = 1; int j = 2; NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]]; NSLog(@"astring:%@",astring); [astring release];//6、创建临时字符串NSString *astring; astring = [NSString stringWithCString:"This is a temporary string"]; NSLog(@"astring:%@",astring);//7、从文件创建字符串NSString *path = [[NSBundlemainBundle] pathForResource:@"astring.text"ofType:nil];NSString *astring = [[NSString alloc] initWithContentsOfFile:path];NSLog(@"astring:%@",astring);[astring release];//8、用字符串创建字符串,并写入到文件NSString *astring = [[NSString alloc] initWithString:@"This is a String!"]; NSLog(@"astring:%@",astring); NSString *path = @"astring.text"; [astring writeToFile: path atomically: YES]; [astring release]; 注:此路径path只只是示意,真实路径并非如此//9、用C比较:strcmp函数char string1[] = "string!"; char string2[] = "string!"; if(strcmp(string1, string2) == 0){ NSLog(@"1"); }//10、isEqualToString方法 NSString *astring01 = @"This is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 isEqualToString:astring02]; NSLog(@"result:%d",result);//11、compare方法(comparer返回的三种值) NSString *astring01 = @"This is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 compare:astring02] == NSOrderedSame; //NSOrderedSame判断两者内容是否相同 NSLog(@"result:%d",result); NSString *astring01 = @"This is a String!"; NSString *astring02 = @"this is a String!"; BOOL result = [astring01 compare:astring02] == NSOrderedAscending; //NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,astring02大于astring01为真) NSLog(@"result:%d",result);NSString *astring01 = @"this is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 compare:astring02] == NSOrderedDescending; //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)NSLog(@"result:%d",result); //12、不考虑大小写比较字符串//1.NSString *astring01 = @"this is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 caseInsensitiveCompare:astring02] == NSOrderedSame; //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)NSLog(@"result:%d",result); //2.NSString *astring01 = @"this is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 compare:astring02 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame; //NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。 NSLog(@"result:%d",result); //13、输出大写或者小写字符串NSString *string1 = @"A String"; NSString *string2 = @"String"; NSLog(@"string1:%@",[string1 uppercaseString]);//大写 NSLog(@"string2:%@",[string2 lowercaseString]);//小写 NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小//14、-rangeOfString: //查找字符串某处是否包含其它字符串NSString *string1 = @"This is a string"; NSString *string2 = @"string"; NSRange range = [string1 rangeOfString:string2]; int location = range.location; int leight = range.length; NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]]; NSLog(@"astring:%@",astring); [astring release];//15、-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符NSString *string1 = @"This is a string"; NSString *string2 = [string1 substringToIndex:3]; NSLog(@"string2:%@",string2);//16、-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符NSString *string1 = @"This is a string"; NSString *string2 = [string1 substringFromIndex:3]; NSLog(@"string2:%@",string2);//17、-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串 NSString *string1 = @"This is a string"; NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)]; NSLog(@"string2:%@",string2);//18、-stringWithCapacity: //按照固定长度生成空字符串NSMutableString *String; String = [NSMutableString stringWithCapacity:40];//19、-appendString: and -appendFormat: //把一个字符串接在另一个字符串的末尾NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; [String1 appendString:@", I will be adding some character"]; [String1 appendFormat:[NSString stringWithFormat:@", I will be adding some character"]]; NSLog(@"String1:%@",String1);//20、-insertString: atIndex: //在指定位置插入字符串NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; [String1 insertString:@"Hi! " atIndex:0]; NSLog(@"String1:%@",String1);//21、-setString: NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; [String1 setString:@"Hello Word!"]; NSLog(@"String1:%@",String1);//22、-replaceCharactersInRange: withString: //用指定字符串替换字符串中某指定位置、长度的字符串NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; [String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"]; NSLog(@"String1:%@",String1);//23、-hasPrefix: //检查字符串是否以另一个字符串开头NSString *String1 = @"NSStringInformation.txt"; [String1 hasPrefix:@"NSString"] = = 1 ? NSLog(@"YES") : NSLog(@"NO"); [String1 hasSuffix:@".txt"] = = 1 ? NSLog(@"YES") : NSLog(@"NO");//24、扩展路径NSString *Path = @"~/NSData.txt"; NSString *absolutePath = [Path stringByExpandingTildeInPath]; NSLog(@"absolutePath:%@",absolutePath); NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);//25、文件扩展名NSString *Path = @"~/NSData.txt"; NSLog(@"Extension:%@",[Path pathExtension]);
转载于:https://www.cnblogs.com/zzgt/p/4616189.html
OC基础数据类型-NSData-NSMutableData-NSString相关推荐
- OC基础15:内存管理和自动引用计数
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...
- OC基础第四讲--字符串、数组、字典、集合的常用方法
OC基础第四讲--字符串.数组.字典.集合的常用方法 字符串.数组.字典.集合有可变和不可变之分.以字符串为例,不可变字符串本身值不能改变,必须要用相应类型来接收返回值:而可变字符串调用相应地方法后, ...
- iOS开发面试知识整理 – OC基础 (二)
iOS | 面试知识整理 – OC基础 (二) 1.C和 OC 如何混编 xcode可以识别一下几种扩展名文件: .m文件,可以编写 OC语言 和 C 语言代码 .cpp: 只能识别C++ 或者C语言 ...
- OC基础回想(十二)协议
在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...
- oc基础 不可变字符串的创建和使用
oc基础 不可变字符串的创建和使用 简介:下面都是字符串基本用法. 1.字符串的创建 //创建oc常量字符串NSString *str=@"hello world!";NSLog ...
- OC基础学习 调用方式
OC基础学习 调用方式 调用方法: C++里,送一个消息给对象(或者说调用一个方法)的语法如下: obj.method(argument); Objective-C则写成: [obj method: ...
- iOS战记 ----OC基础语法之战(一)
iOS战记 ----OC基础语法之战(一) 一个机械设计者的转行之战. 火车一个年轻的程序员和一个项目经理登上了一列在山里行驶的火车,他们发现列车上几乎都坐满了,只有两个在一起的空位,这个空位的对面 ...
- ios开发之OC基础-类和对象
ios开发之OC基础-类和对象 本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录 ...
- 初识mysql数据字段属性_MySQL数据库~~~~初识、基础数据类型
一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库 ...
最新文章
- python中一些常用函数和库的介绍(getattr、id、type、sys)
- python补课费用_学习python阶段小总结
- 混合代码块 Markdown Leedcde
- Coursera自动驾驶课程第7讲:Vehicle Lateral Control
- 10 计算机组成原理第六章 总线 总线的概念与分类 总线性能指标 总线仲裁 总线操作和定时 总线标准
- 什么是python 包_什么是python
- 2013年值得我们学习的网页设计作品【系列二】
- Flash游戏开发常用函数代
- 数字化定量分析_数字化驱动下的华夏银行信用卡精细化智能服务
- 前端三大框架React、Vue、Angular简述
- CMUX协议学习总结
- Photoshop制作水印简易教程
- 微信公众开发 表情开发php,微信公众帐号开发教程第9篇-QQ表情的发送与接收_PHP教程...
- 阿里云技术大咖分享新内容新交互时代下的新技术、新机会
- JS--JavaScript数组Array(join、split、reverse、concat、slice)详解
- 迈卓诺(Metronor)光笔测量仪--大型模具的测量利器
- 某强人整理央视《家有妙招》不看别后悔
- 智能客服机器人的优势,促进客户服务自动化
- 用python实现祝福弹窗_python实现弹窗祝福效果
- Linux压缩备份相关命令
热门文章
- Uva10191 复合词
- python学习手册笔记——20.迭代和解析
- 此代码募集最优秀的答案
- 20180917-1每周例行报告
- Keymob:移动广告的优化工具
- HowTO: Create an Event Log Source in code, without the Permission errors
- 《JAVA练习题目9》 创建一个Person类和一个Family类。(这次的OJ实在写的没有状态,被样例搞崩了,这次代码还有好多代码复制等一系列不良现象,就是为了过OJ写的。。大家凑活看一下吧)
- R语言:使用REmap绘制超炫酷的地图
- 全国计算机一级office2010,2018年全国计算机等级考试一级office2010真题一套(中档题)...
- android 控件随手指移动_液体流动控件,隔壁产品都馋哭了