oc语言的Foundation框架(学习笔记1)
Foundation框架
1.Foundation框架介绍
框架是由许多类、方法、函数以及文档按照一定的规则组合的起来的集合。
cocoa程序编写主要用到2个框架Foundation和Application(UIKit)。Foundation主要定义的是一些基础类,供程序员使用,Application Kit是一些用户界面设计的类,用于Mac开发使用。Foundation框架所有类都继承自NSObject对象。
Foundation(通用的面相对象的函数库)提供字符串,数值的管理,容器及其枚举,以及一些其他的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NextSTEP。可以在Mac OS X和iOS中使用。


2.NSObject常用方法
2.1 介绍:一切类的根类(基类),无父类。所有oc对象都必须直接或者间接的继承NSObject类。
2.2 常用方法:
(1)比较两个对象是否为同一个对象(指针是否指向同一个内存区域)
- (BOOL)isEqual:(id)object;
(2)调用一个方法
- (id)performSelector:(SEL)aSelector;
(3)调用一个方法并传递1个参数
- (id)performSelector:(SEL)aSelector withObject:(id)object;
(4)调用一个方法并传递2个参数
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
(5)某一个对象是否派生或属于某一类
- (BOOL)isKindOfClass:(Class)aClass;
(6)某一个对象是否属于某类
- (BOOL)isMemberOfClass:(Class)aClass;
(7)某对象是否响应指定的方法
- (BOOL)respondsToSelector:(SEL)aSelector;
(8)返回指定对象的父类和本类
-(Class)superclass; -(Class)class;
3. 字符串的基本概念和常用处理方法
3.1 字符串基本概念
在Foundation框架中,提供NSString类用于处理字符串对象。oc语言是建立在c语言基础上的,故为区别两者字符串,oc语言的字符串必须以@开头,引号中则是字符串的内容,如@"abc"。而且NSString对象一旦被创建不可以再修改,如需修改字符串对象,则需创建NSMutableString实例。
3.2字符串的创建
1).创建一个字符串常量
NSString *string=@"一个字符串常量";
2).创建一个空的字符串
NSString *string=[[NSString alloc] init]; 或者 NSString *string=[NSString string];
3).快速创建一个字符串
NSString *string=[[NSString alloc] initWithString:@"快速创建字符串"]; 或者
NSString *string=[NSString stringWithString:@"快速创建字符串"];(创建的是字符串常量,不推荐使用)
4).快速创建一个格式化字符串
int number=2; NSString *string=[[NSString alloc] initWithFormat:@"%d",number];
float number=2.5 NSString *string=[NSString stringWithFormat:@"浮点数%f",number];
3.3 比较字符串
1)测试字符串内容是否相同
NSString *string1=[[NSString alloc] initWithFormat:@"test"];
NSString *string2=[[NSString alloc] initWithFormat:@"test"];
if([string1 isEqualToString:string2]){NSLog(@"测试连个字符串是否相等");}
2)测试字符串内容是否相同
NSString *string1=[[NSString alloc] initWithFormat:@"test"];
NSString *string2=[[NSString alloc] initWithFormat:@"test"];
if([string1 == string2]){NSLog(@"测试连个字符串是否为同一个对象");}
3)比较字符串的先后顺序
NSString *string1=[[NSString alloc] initWithFormat:@"a"];
NSString *string2=[[NSString alloc] initWithFormat:@"b"];
NSLog(@"[string1 caseInsensitiveCompare:string2]:%ld",[string1 caseInsenstiveCompare:string2]);
4)求字符串长度
NSString *string=[[NSString alloc] initWithFormat:@"string length"];
NSUInteger *length=[string length];
3.4字符串的转换
1)改变字符大小写
NSString *hello=@"hello WORLD";
NSLog(@"%@",[hello uppercaseString]); //全部大写
NSLog(@"%@",[hello lowercaseString]); //全部小写
NSLog(@"%@",[hello capitalizedString]); //首字母大写,其他均小写
2)将字符串转换成基本数据类型
NSString *string=@"3.68";
NSLog(@"%d",[string boolValue]); //转换成BOOL类型
NSLog(@"%f",[string floatValue]); //转换成浮点型
NSLog(@"%f",[string doubleValue]); //转换成双精度型
NSLog(@"%d",[string intValue]); //转换成整型
3)将字符串转换成数组
NSString *string=@"one two three four";
NSArray *array=[string componentsSeparatedByString:@""];
3.5 字符串的截取于拼接
1)截取字符串
NSString *string=[NSString stringWithFormat:@"asdfdf"];
NSString *string1=[string substringToIndex:2];//从字符开头一直截取到指定位置,不包括选中位置字符
NSString *string2=[string substringFromIndex:2];//以指定位置开始(包括指定位置字符),并包括之后的全部字符
2)根据范围截取字符串
NSRange rang;
rang.location=2;
rang.length=3;
NSString *string3==[string substringWithRange:rang];
3)拼接字符串
NSString *str1=@"1",*str2=@"2";
NSString *string=[[NSString alloc] initWithFormat:@"拼接:%@ and %@",str1,str2];
NSString *string1=[str1 stringByAppendingFormat:@"%@",str2];
NSString *string2=[str1 stringByAppendingString:str2];
3.6 查询、比较字符串对象
1.查询字符串
NSString *link=@"khoihsdfnovi";
NSRange range=[link rangeOfString:@"sdfnovi"];
if(range.location!=NSNotFound){NSLog(@"找到了");}
2.比较字符串
NSString *content=@"Hello";
NSComparisonResult result1=[content compare:@"hello"];
NSComparisonResult result2=[content compare:@"hello" options:NSLiterakSearch];//区分大小写
NSComparisonResult result3=[content compare:@"hello" options:NSCaseInsensitiveSearch range:NSMakeRange(0,5)];//不区分大小写
3.7可变字符串
1)插入字符串
NSMutableString *str=[NSMutableString stringWithString :@"字符串"];
[str insertString:@"可变" atIndex:0];
2)删除字符串
NSMutableString *str=[NSMutableString stringWithString :@"字符符串"];
[str deleteCharactersInRange:NSMakeRange(1,2)];
3)替换字符串
NSMutableString *str=[NSMutableString stringWithString :@"字符串"];
[str replaceCharactersInRange:NSMakeRange(0,2)withString:@"猪肉"];
集合、数字对象常用处理方法和日期的常用处理方法以及异常处理内容由下一章笔记给出
oc语言的Foundation框架(学习笔记1)的更多相关文章
- oc语言的Foundation框架(学习笔记2)
紧接上文…… 4.集合对象 4.1数组 1.基本概念 Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合,通过索引下标获取到数组中的各个元素,也分可变和不 ...
- 【iOS】Foundation框架 学习笔记
1.数组 OC数组不能存放nil值OC数组只能存放OC对象.不能存放非OC对象类型,比如int.struct.enum等 ====================================== ...
- Cocoa Foundation框架学习笔记 - NSCalendar
+ (void)beginTest { /* FOUNDATION_EXPORT NSString * const NSGregorianCalendar; //公历(常用) FOUNDATION_E ...
- JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序
前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...
- SSM框架学习笔记_第1章_SpringIOC概述
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念 ...
- phalcon(费尔康)框架学习笔记
phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构 pha ...
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...
- JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue
前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...
- JavaSE中Map框架学习笔记
前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...
随机推荐
- Centos 安装pureftpd工具
之前由于vsftp上传文件会导致权限变更,因此一直不太想用ftp工具,一直sftp了,这样就导致权限过大,用户对家目录下所有文件都有权限,很容易误删其他文件.最近听同事说pure-ftp工具不错,试了 ...
- 剑指offer(1)二维数组的查找
限制今天起开始也刷剑指offer啦,一步一步来. 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...
- linux --- 6. 项目部署
一.负载均衡 .准备三台机器,准备3台虚拟机,或者和俩同桌交流一下 192.168.226.128 是nginx资源服务器,返回页面的 192.168.226.129 用作nginx负载均衡服务器 1 ...
- js-input框中写入的小写小写字母全部转换成大写字母的js代码
<input type="text" id="blinitials" name="blinitials" onkeyup=" ...
- MySQL 实战笔记
01 | 基础架构:一条SQL查询语句是如何执行的? 大体可以分为: Server 层:包含了连接器.查询缓存.分析器.优化器.执行器,跨存储引擎的功能都在这一层实现的,比如存储过程.触发器.视图等. ...
- oracle常用的数据字典查询语句
select * from all_source where owner='user_name' and type = 'PROCEDURE' and upper(text) like upper(' ...
- 【Entity Framework】Model First Approach
EF中的model first 所谓mf, 就是使用vs提供的edm designer去设计model,然后将设计好的model使用vs在指定的数据库中生成数据库即可. 当你的项目既没有数据库也没有c ...
- 初学者易上手的SSH-struts2 03数据封装
这一章我们一样来获取数据,看看与上一章有什么不同吧.数据封装也有三种方式.下面我们来一一介绍. 第一种:属性封装. 类就用LoginAction吧.里面有两属性,name,pwd.给这两个属性写上ge ...
- Flex外包公司——案例汇总
Flex做的案例汇总: http://flex.org/showcase/ http://taggraph.com/everybody http://demoprod.informationbuild ...
- 理解AJAX的原理
1.原生ajax异步请求(ajax的原理) (异步请求:无跳转,无刷新....)通过XMLHttpRequst对象,向服务器发送请求.XMLHttpRequest对象具有一些属性和方法. 1.首先创建 ...