一、字符串
1.不可变字符串( 关键字NSString )
1.1创建方式:
第一种方式:NSString *str = "shdjgbeb";
"%
第二种方式:
NSString *string = [NSString stringWithFormat:",str];
"内容相同");
1.2 判断两个字符串的内容是否相同
1.2.1 if ( [str isEqualToString: string] ) {
NSLog(
}
else{
NSLog("内容不相同");
"abcdfg"];
}
1.2.2 三个值 1代表str大于string 0是相等 -1是小于
[str compare: string]
1.2.3 不区分大小写比较,返回值为枚举型,通倍符%li
[str caseInsensitiveCompare:string];
1.3首字母大写,其余的全部小写
[str capitalizedString];
1.4 将字符串改为大写
[str uppercaseString];
1.5将大写的改为小写
[str lowercaseString];
1.6从字符串开始到字符串第4个
[str substringToIndex:4];
1.7从位置第4个开始到字符串结尾
[str substringFromIndex:4];
1.8从字符串中取出中间的字符
[str substringWithRange:NSMakeRange(2, 3)];
2.可变字符串( 关键字 NSMutableString)
2.1创建方式:
NSMutableString *muStr = [NSMutableString stringWithCapacity:100];
2.2追加字符串
[muStr appendString:
2.3设置字符串
[muStr setString:"123456"];
"w" atIndex:1];
2.4在某个位置插入字符串
[muStr insertString:
2.5查找字符串中的“f”
"f"];
NSRange range = [muStr rangeOfString:
2.6用"我"代替查找到的
“5”
[muStr replaceCharactersInRange:range withString:"5"];
"今天是%i年%i月%i日",year,month,day];
2.7追加字符串格式
[muStr appendFormat:
2.8 查找
2.8.1直接查找
unichar c=[muStr characterAtIndex:2];
2.8.2范围查找
NSString *string=[muStr substringWithRange:NSMakeRange(2, 3)];
2.9字符串的遍历(for 循环)
2.9.1第一种方式
for ( int i=0; i<[muStr length]; i++ ) {
NSString *str=[muStr substringWithRange:NSMakeRange(2, 4)];
NSLog("%
",str);
}
2.9.2 第二种方式
for (int i=0; i<[muStr length]; i++) {
unichar c=[muStr characterAtIndex:i];
NSLog("%c",c);
"1",
}
二、数组
1.不可变数组(关键字NSArray)
1.1创建方式:
第一种方式:NSArray *arrary = [NSArray arrayWithObjects:"2",
"4","3",nil];
[
第二种方式:NSArray *Arrary = "1",
"2","3"];
"%
1.2 数组的遍历
1.2.1第一种方式
for (int i = 0; i<[arr count]; i++) {
NSLog(",arrary[i]);
"%
}
1.2.2第二种方式(for-in)
for (id thing in Arrary) {
NSLog(",thing);
"%
}
1.2.3第三种方式(枚举)
NSEnumerator *numerator=[Arrary objectEnumerator];
NSString *enumer;
while (enumer=[numerator nextObject]) {
NSLog(",enumer);
[
}
2.可变数组(关键字NSMutableArray)
2.1创建方式:
第一种方式:NSMutableArray *muArray = [NSMutableArray arrayWithCapacity:10];
第二种方式:NSMutableArray *muArray=[ NSMutableArray arrayWithArray:"1",
"2","3"] ];
"1",
第三种方式:NSMutableArray *muArray=[NSMutableArray arrayWithObjects:"2",
"3",nil];
2.2追加数组
[muArray addObject:"1"]; //追加一个数
[
[muArray addObjectsFromArray:"2",
"3","4"] ]; //追加一个数组
"hello" atIndexedSubscript:0];
2.3设置数组
[muArray setObject:
2.4在数组中插入
2.4.1 在某个位置插入一个数
[muArray insertObject:"521" atIndex:3];
"1"];
2.4.2在数组中插入一个数组(关键字 NSIndexSet)
NSRange range = NSMakeRange( 1, [array count] );
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange: range ];
[muArray insertObjects:array atIndexes:indexSet];
2.5 数组查找
2.5.1 通过下标找元素
NSString *arrobj = [muArray objectAtIndex:0];
2.5.2通过元素找下标
NSInteger index = [muArray indexOfObject:
2.5.3通过范围找下标
NSRange range = NSMakeRange(0, 2);
[muArray subarrayWithRange:range];
2.6删除可变数组中的元素
2.6.1 通过元素删元素
[muArray removeObject:"2"];
"me"];
2.6.2通过下标删元素
[muArray removeObjectAtIndex:0];
2.7代替数组的元素
[muArray replaceObjectAtIndex:1 withObject:
2.8数组的遍历(for 循环)
2.8.1第一种方式
for (int i=0; i<[muArray count]; i++) {
NSArray *array=[muArray subarrayWithRange:NSMakeRange(1, 2)];
NSLog("%
",array);
}
2.8.2 第二种方式(for-in)
for (id thing in muArrary) {
NSLog("%
",thing);
}
2.8.3 第三种方式(枚举)
NSEnumerator *numerator=[muArrary objectEnumerator];
NSString *enumer;
while (enumer=[numerator nextObject]) {
NSLog("%
",enumer);
}
三、字典
1.不可变字典(关键字NSDictionary)
1.1创建方式:
第一种方式:NSDictionary *diction = {
"name" : "zd",
"age":"19"};
"nv" forKey:
第二种方式:NSDictionary *diction1 = [NSDictionary dictionaryWithObject:"sex"];
[
第三种方式:NSArray *keyArray = "name",
"age","num",
"person"];
NSArray *valueArray = [
"zd","19",
"4","5"];
"%
NSDictionary *diction2 = [NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray];
1.2 字典的遍历
1.2.1第一种方式(for-in)
for (id key in diction1) {
NSLog(",diction1[key]);
"%
}
1.2.3第三种方式(枚举)
NSEnumerator *numerator=[diction1 objectEnumerator];
NSString *enumer;
while ( enumer=[numerator nextObject] ) {
NSLog(",enumer);
{
}
2.可变字典(关键字NSMutableDictionary)
2.1创建方式:
NSMutableDictionary *muDict = [NSMutableDictionary dictionaryWithCapacity:10];
2.2追加字典
[muDict addEntriesFromDictionary:"name":
"jack"}];
2.3设置元素
[muDict setObject:"age" forKey:
"17"];
2.4在字典中插入
[muDict insertValue:"value" atIndex:0 inPropertyWithKey:
"key"];
2.5删除可变字典中的元素
[muDict removeObjectForKey:"name"];
"%
2.6字符串的遍历(for 循环)
2.6.1第一种方式
for (id key in muDict) {
NSLog(",muDict[key]);
"枚举:%
}
2.6.2 对key数组进行枚举
NSEnumerator *enumor = [arrKey objectEnumerator];
NSString *strEnum ;
while (strEnum = [enumor nextObject]) {
NSLog(",strEnum);
"key:%
}
2.6.3给字典的键请求枚举器
NSEnumerator *enumDict = [dictTest keyEnumerator];
for (id key in enumDict) {
NSLog(",key);
"今天是:%i年%i月%i日",today.year,today.month,today.day);
}
四、结构体
1.自定义的结构体,struct是结构体的关键字 birthday是自定义的结构体的名字 date是自定义结构体birthday的一个变量。year、 month、day是自定义结构体birthday的参数
struct birthday {
int year;
int month;
int day;
};
struct birthday date = {2015,12,14};
NSLog(
2. 结构体NSRange 用来描述范围 参数是location、length代表的是位置、长度
NSRange range = NSMakeRange(1, 2);
NSRange rangeI = {3,4};
range = rangeI; //可被赋值
NSLog(@"%li %li",range.location,range.length);
3.结构体 NSPoint用来描述坐标的 参数x、y point是结构体类型的变量名
NSPoint point = NSMakePoint(0, 0);
point.x = 10;
point.y = 20;
NSLog("%.2f %.2f",point.x,point.y);
NSPoint pointI = {2,3};
NSLog(
"%.2f %.2f",pointI.x,point.y);
4.结构体NSSize 用来描述尺寸的结构体 参数width、height
NSSize size = {10,20};
NSSize sizeI = NSMakeSize(30, 80);
size = sizeI;
NSLog(@"宽:%.2f 高:%.2f",size.width,size.height);
5.结构体NSRect 描述的是具体的坐标和尺寸 参数NSPoint类型的origin、NSSize类型的size
NSRect rect = NSMakeRect(0, 0, 0, 0);
rect.origin.x = 20;
rect.origin.y = 50;
rect.size.width = 100;
rect.size.height = 50;
NSRect rectI = {10,20,100,300};
6.结构体NSNumber 将基本数据类型封装成对象
6.1 直接调用类方法
NSNumber *number = [NSNumber numberWithChar:'a'];
char a = [number charValue];//将字符的ascot码转换成字符
6.2在基本数据类型前面加符号
NSNumber *num =
'A';
NSNumber *numInt = 1;
NSArray *array =
[number,@1,@YES];
7.NSValue是NSNumber的父类 封装结构体
NSValue *value= [NSValue valueWithPoint:point]; //封装结构体
NSPoint pointValue = [value pointValue]; //分拆结构体
8.NSNull是空值类型
NSNull *nul = [NSNull null];
NSArray *array = [NSArray arrayWithObjects:value,nul,number, nil];