码迷,mamicode.com
首页 > 其他好文 > 详细

023-Foundation框架(上)-OC笔记

时间:2015-10-08 23:14:50      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

学习目标

1.【理解】NSString

2.【了解】NSString的常用方法

3.【了解】NSRange

4.【了解】NSMutableString

5.【掌握】NSArray

6.【了解】NSArray的常用方法

7.【掌握】遍历数组的三种方式

8.【了解】NSArray与字符串

9.【掌握】NSMutableArray

一、NSString

在OC中,使用NSString类型的对象来保存一个字符串对象的地址,OC字符串必须要使用 @ 前缀。NSString其实是Foundation框架中的一个类,字符串以NSString对象的形式保存。如果是以字符串常量去初始化一个NSString指针,那么这个字符串常量是存储在常量区之中的。如果是以调用NSString的类方法来得到一个字符串对象,这个对象就创建在堆区。并且一旦在内存中(无论堆区、常量区)创建了一个字符串对象,这个字符串对象的字符内容就无法修改。

 

二、NSString的常用方法

从文件中读取或写入字符串

字符串的比较和判断

字符串的截取,从一个字符串中,取出一个子字符串来

字符串的替换,将字符串中符合要求的子串替换成另外的字符串

将字符串转为一些基本数据类型

C语言字符串和OC字符串互转

 

三、NSRange

NSRange是Foundation框架中比较常用的结构体,一个NSRange结构体变量表示一段范围。通常情况下,用来表示一个子字符串在主字符串中的范围。它的定义如下:

 

四、NSMutableString

NSString字符串的特点是恒定性,一旦创建字符串对象在内存之 中,这个字符串对象的内容就无法更改。当我们重新为一个 NSString指针变量赋值一个字符串的时候,会先在常量区查找是否有相同内容的字符串,如果有就直接指向,如果没有才会创建字符串。那么这样就会有一 个问题,当我们做大批量的字符串拼接的时候,就会特别的消耗性能和时间。

NSString的硬伤

Foundation提供了一个NSString的子类NSMutableString,NSMutableString对NSString做的最大的扩展就是,NSMutableString对象用来存储字符串的时候,这个对象中存储的字符串内容是可以更改的。这样在我们做字符串拼接的时候,就不会产生一个又一个的字符串对象,而是直接修改这个NSMutableString对象了。

解决NSString的硬伤

总结:

平时我们使用字符串的时候还是尽量使用NSString,因为NSString的恒定性,当我们同一个字符串多次使用的时候,效率就很高。当我们做大批量拼接字符串的时候才用NSMutableString。

五、NSArray

C语言中的数组特点:

元素的类型一致,创建一个C语言的数组,这个数组中可以存储的数据的元素的类型必须是一致的。C语言数组的长度是固定的,一旦创建数组,就无法改变。C语言数组的元素无法删除、新增。OC中新增了数组类NSArray,在C语言的数组的基础之上做了很大的增强。

NSArray数组的特点:

1.只能存储OC对象,而且是可以存储任意OC对象

2.这些对象在NSArray数组中是有序存放,一个挨一个的存储。

3.NSArray数组只能存储OC对象,不能存储非OC对象。所以基本数据类型等非OC对象类型无法存储。

4.NSArray数组是不可变的,一旦初始化完毕之后,它里面的元素就永远是固定的,无法删除和新增元素

 

六、NSArray的常用方法

 

 

七、遍历数组的三种方式

第一种,遍历数组,使用常规for循环

第二种,遍历数组,使用增强for循环

第三种,遍历数组,使用block

 

八、NSArray与字符串

 

 

九、NSMutableArray

NSMutableArray是NSArray的子类,所以他具备NSArray的所有特点。唯一区别就是NSMutableArray是一个可变数组,存储在该数组中的元素可以删除,可以动态的新增元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//初始化NSMutableArray数组
//创建一个没有任何元素的数组,最常用也是这种,因为可变数组可以新增
NSMutableArray*arr1=[NSMutableArrayarray];
NSMutableArray*arr2=[[NSMutableArrayalloc] init];
//创建一个有5个元素的数组
NSMutableArray*arr3=[[NSMutableArrayalloc] initWithCapacity:5];
//创建数组的同时调用 类方法 初始化数组的元素
NSMutableArray*arr4=[NSMutableArray arrayWithObjects:@"哈哈",@"呵呵",nil];
//创建数组的同时调用 对象方法 初始化数组的元素
NSMutableArray*arr5=[[NSMutableArrayalloc] initWithObjects:@"哈哈",@"呵呵",nil];
 
//NSMutableArray增删改查
//新增元素
[arr1 addObject:@"jack"];
[arr1 addObject:@"rose"];
[arr2 addObject:@"mark"];
[arr2 addObject:@"juli"];
 
//将arr2添加到arr1数组尾部
[arr1 addObjectsFromArray:arr2];
 
//在指定位置处插入元素
[arr1 insertObject:@"charu" atIndex:0];
 
//删除指定下标元素
[arr1 removeObjectAtIndex:1];
 
//删除指定值的元素
[arr1 removeObject:@"mark"];
 
//删除指定范围内的指定元素
[arr1 removeObject:@"jack" inRange:NSMakeRange(0,2)];
 
//删除最后一个元素
[arr1 removeLastObject];
 
//删除所有元素
[arr1 removeAllObjects];

 

 

023-Foundation框架(上)-OC笔记

标签:

原文地址:http://www.cnblogs.com/liehuntianshi/p/4862415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!