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框架相对 ...
随机推荐
- 剑指offer(14)链表中倒数第K个节点
题目描述 输入一个链表,输出该链表中倒数第k个节点. 题目分析 用两个指针来跑,两个指针中间相距k-1个节点,第一个指针先跑,跑到了第k个节点时,第二个指针则是第一个节点. 这时候两个一起跑.当第一个 ...
- java基础hashmap
Iterator中hasNext(), next() 在Iterator类中,我们经常用到两个方法: hasNext(), next(),具体含义: next(), 是返回当前元素, 并指向下一个元 ...
- Arch pacman 常用命令
更新系统 pacman -Syu :对整个系统进行更新 如果你已经使用pacman -Sy将本地的包数据库与远程的仓库进行了同步,也可以只执行 pacman -Su 安装包 ➔ pacman -S 包 ...
- memcpy的函数
网新恒天2014校园招聘笔试编程题 已知memcpy的函数为: void* memcpy(void *dest , const void* src , size_t count)其中dest是目的指针 ...
- 【NET Core】.NET Core中读取json配置文件
在.NET Framework框架下应用配置内容一般都是写在Web.config或者App.config文件中,读取这两个配置文件只需要引用System.Configuration程序集,分别用 Sy ...
- html css js 细节
细节1 1.Chrome中文界面下会将小于12px的字体默认显示为12px,解决方法:在CSS中加入-webkit-text-size-adjust:none; 2.link可以加载除CSS以外的其他 ...
- idea提示不区分大小写,解决方法
- webview元素定位
genymotion 模拟器:android 5.0.0 python 2.7 appium 1.4.16.1 1.app原生元素定位(常用) driver.find_element_by_id(“ ...
- python3中 getpass模块使用
getpass在IDLE中报错 CMD中可以使用 import getpass usr = getpass.getuser print(usr) 返回值为当前windows登陆用户名
- linux存储管理之磁盘阵列
磁盘阵列 RAID ====================================================================================RAID:廉 ...