------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------
结构体:
有如下结构体:
NSRange,NSPoint/CGPoint,NSSize/CGSize,NSRect/CGRect
注意点:CG开头的结构体一般属于CoreGraphics框架
1.NSRange(表示范围)
参数:location(位置),length(长度)
eg:
NSRange r1 = {2,3} ; // 表示从2开始,3个长度
NSRange r2 = NSMakeRange(2,4); // 表示从2开始,4个长度 常用此方式 常用
NSRange r3 = {.location=2,length=4};</span>
应用:查找某字符串在字符串str中的范围
NSRange r3 = [str rangeOfString:@"love"]; // 查找字符串love在str中的范围。
NSLog("location = %d,range =%d",r3.location,r3.range); // 打印出结果
注:如果找不到,则length=0,location=NSNotFound。(NSNotFound是个枚举常量,等于-1)
2.NSPoint/CGPoint(表示点坐标)
CGPoint跨平台。
NSFloat = CGFloat = double
参数:double类型的x和double类型的y。
eg:
NSPoint p = NSMakePoint(20,20); // 表示点的x和y坐标
NSPoint p2 = CGPointMake(20,20);
CGPointZero表示原点,相当于CGPointMake(0,0)
CGPointEqualToPoint(CGPointMake(1,1),CGPointMake(2,2)); // 判断两个点是否相同,布尔型
3.NSSize/CGSize(表示UI的尺寸大小)
参数:长度x和宽度y
eg:NSSize s1 = CGSizeMake(100,20); // 表示宽度是100,高度是20</span>
4.NSRect/CGRect(表示UI的位置和尺寸)
参数:CGPoint(位置),CGSize(尺寸)
eg:CGRect r4 = CGRectMake(1,2,3,4); // 表示x坐标1,y坐标2,宽度3,高度4.
将结构体转化为字符串(将参数按照顺序打印出来)
NSString *p = NSStringFromPoint(p1);
5.结构体和字符串相互转化
NSString *str = NSStringFromPoint(p1); // 将点坐标的结构体转化为字符串
NSString *str = NSStringFromSize(s1); // 将UI尺寸大小的结构体转化为字符串
常用类:
NSString/NSMutableString,NSSet/NSMutableSet,NSArray/NSMutableArray
NSString : 不可变字符串
NSMutableString(继承NSString):可变字符串(可调用添加方法,对字符串对象内容进行修改,例如字符串内的内容可以随意添加或删除)。
1.字符串创建的几种方法
(1)NSString *s1 = @"jack";
(2)NSString *s2 = [[NSString alloc] initWithFormat:@"age is %d",10];
(3)NSString *s3 = [[NSString alloc] initWithString:@"jack"];
(4)NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"]; // 将c语言字符串转化为OC字符串
char *cs = [s4 UTF8String]; // 将oc字符串转化为C字符串
2.读取文件内容
[NSString stringWithContentsOfFile:@"文件路径" encoding:NSUTF8StringEncoding error:nil];
[NSURL URLwithString:@"文件路径"];
注:如果遇到中文,则使用NSUTF8StringEncoding进行编码
3.写入文件
[@"jack " writeToFile:@"/users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
注意点:1>如果不存在my.txt,则 会自动创建此文件。
2>设置为YES时,如果写入错误,则不会创建my.txt
4. NSMutableString
作用:可以随意往字符串内部添加或删除内容。
eg:
[s1 appendString:@" 11 12"]; // 在字符串s1后添加11 12。且返回s1字符串
[s1 deleteCharactersInRange:NSMakeRange(4,2)]; // 删除字符串s1的从4位开始往后2位的内容,且返回s1本身</span>
5.求出字符串的第i位
unichar i = [str characterAtIdex:i];
6.按照某字符串分割字符串,返回数组
NSArray *array = [content componentsSeparatedByString:@"\n"];
按照字符串\n将字符串content分割,并且分割后的内容以数组形式返回。
7.文件管理类NSFileManger
注意点:此类属于单列模式,此类永远只有一个对象
常用具体有如下方法:
创建文件管理对象 fm = [NSFileManager defaultManager ];
数组(NSArray)
OC数组只能存放OC对象,不能存放非OC对象类型(例如基本数据类型、结构体、枚举等)。
NSArray:不可变数组
NSMutableArray:可变数组
1.OC数组的创建
NSArray *array1 = [NSArray arrayWithObject:@"jack",nil]; // 创建一个OC数组,数组中存放了jack对象。
注:nil是数组元素的结束符号,不能存放nil。
// 快速创建OC数组
NSArray *array2 = [@"jack",@"bill",nil];
2.获取OC数组中的某个元素
NSLog(@"%@",array1[0]);
[array2 count]; // 求出字符串中的元素个数 array.count
[array2 objectAtIndex:2]; // 求出字符串array2中第二个位置的元素</span>
3.NSArry遍历
方法一:
for (int i=0;i<array.count;i++)
{
NSLog(@"%@",array[i]);
}
方法二:
for ( id obj in array)
{
[array indexOfObject:obj]; // 代表obj元素在数组array中的位置
NSLog(@"%@",obj);
}
原理:1>每个字符串的对象是id类型。
2>id obj代表着数组中的每一个元素。
方法三:
// 每遍历一个元素,都会调用一次block,且会将当前元素和索引位置当作参数传给block
[array enumerateObjectsUsingBlock:
^(id obj,NSUInteger idx, BOOL *stop)
{
NSLog(@"index = %d,元素 = %@",idx,obj);
if ( idx = 0)
{
*stop = YES;// 停止遍历
}
}
];