1、CGRect,CGPoint,CGSize,NSRange
- //结构体
- NSRange r = NSMakeRange(locatin,length);
- NSString *str = @“i love panda”;
- //如果找不到length = 0;loaction = NSNotFound;整型常量值-1
- //字符串在字符串中的位置
- NSRange r = [str rangeOfString:@“love”];
-
- CGPoint p; //控件在屏幕上的位置 CGPointMake();
- CGRect r; //控件大小和位置
- CGSize s; //控件的的大小
-
- //三种方法初始化
- r = CGRectMake(0, 0, 100, 50);
- r = {CGPointZero, {100, 50}};
- r = {p, s};
-
- //CoreGraphics框架中的方法简介
-
- //表示原点
- CGPointZero
- //表示宽高0
- CGSizeZero
- //原点宽高
- CGRectZero
- //将结构体转为字符串
- NSString * strContent = NSStingFromPoint(CGPoint);
-
- //判断三种结构体是否相同
- BOOL b = CGPointEquelToPoint(CGPoint, CGPoint);
- BOOL b = CGSizeEquelToSize(CGPoint, CGPoint);
- Bool b = CGRectEqualToRect(CGRect,CGRect);
- //判断在一个范围内是否包含一个点
- BOOL b = CGRectContainsPoint(CGRect, CGPoint);
如何快速打印一个结构体,先将结构转为字符串,然后打印。NSStringFromPoint();等类似方法在c语言中结构题用大括号{}。
二、字符串
1、不可变字符串的创建的几种方法
- //字符串的创建
- NSString *str1 = @“i love panda”;
- NSString *str2 = [NSString StringWithFormate:@“i am %d”, 10];//将字符串转为数字。
- NSStirng *str3 = [NSString alloc] initWithFormate:@“i am %d”, 10];
- //将c语言字符串,转成OC字符串,参数字符串无序加@,因为是c语言字符串
- NSString *str4 = [[NSString alloc] initWithUTFString:“i love Panda”];
-
- //将OC语言字符串转成c语言字符串
- const char *c = [str UTF8String];
-
memcpy(字符数组, [strUTF8String], length);转为字符数组
- //传文件绝对路径,从文件中取出字符串NSUTF8StringEncoding
- NSString *str5 = [[NSString alloc] initWithContentOFFile:@“/文件绝对路径” encoding:NSUTF8StringEncoding error:nil];
- NSRange range = [str rangfoString:@“love”];返回字符串在字符串中的范围,找不到length等于=0,location= NSNOFOUND
- //资源路径URL
- //协议头://路径
- //file://路径 本地资源
- //ftp://路径 ftp服务器资源
- //http://weibo.com/a.png 网络资源
-
- //会吧整个文件读取成一行,换行字符也会读出来输出
- NSURL *url = [[NSURL alloc] initWithString:@“file:///apple/a.txt”];//注意三个/
- //这个方法已经说明了文件类型是file就不用传file://了
- NSURL *url = [NSURL fileURLWithPath:@”//apple/a.txt”];
- NString *str6 = [[NSString alloc] initWithContentOFURL:资源路径 encoding:NSUTF8StringEncoding error:nil]
-
- //字符串转化成整形 int a = [str inValue];
- //转化成包装类型 NSNumber *d = [NSNumber numberWithInt:int];
-
- //写内容到文件
- [@“wirte to \n file” wirteToFile:@“/apple/a.txt” automically:YES encoding:NSUTF8StringEncoding error:nil];
- [@“wirte to \n URL” wirteToURL:资源路径 automically:YES encoding:NSUTF8StringEncoding error:nil];
2、NSMutableString可变字符串
它是NSSting的子类,所以以上方法NSMutalbeString 都能用。
- //append
- //字符串的拼接,下面的代码会自动发字符串的内容拼接到可辨字符串的后面,前提是str是可变字符串
- [str appendString:@“i love panda”];
-
- //delete
- //删除某一范围内的内容
- //一般要配合字符串的RangeofString才能做到精确删除
- NSRange r = [str RangeOfString:@“love”];//搜索字符串
- [str deleteCharactersInRange:r];
-
- substringWithRange//截取某一范围字符串
-
- //insert
- [str insertString:@"" atIndex:1];
- //replace某个范围内的所有字符串,有两个方法
- replaceCharactersInRange:NSRange withString:@""//把这个范围内的字符串,无论多长,替换成后面的字符串。
- [strreplaceOccurrencesOfString:@"do"withString:@"fuck"options:NSCaseInsensitiveSearchrange:rang2];//把某一范围内重复的字符串替换掉
- 把两个字符串拼接返回一个新的字符串
- NSString *str = [s1 StringByAppendingString:@“i am"];
三、集合类
1、NSArray只能翻oc对象,不能放基本数据类型,为不可变数组。
- //不可变数组,你在定义它的时候,没有存放任何OC对象,那么它永远是空数组。
- NSArray *array = [NSArray array];
- //数组最后的nil是数组的结束标记,并且oc数组不能存放空指针
- NSArray *array = [NSArray arrayWithObjects:@“2”, @“2”,nil];
- NSArray *array = @[“”,””,””];//C语言数组用的是大括{}
-
- //取得数组里面对象有两种方法
- [array objectAtIndex:i];//面相对象方法
- array[i];//编译器特性
-
- //快速遍历数组
- for(id obj in Array){
- //缺点不知道第几次,他没循环一次,自动会复值给obj
- NSLog(“%@“, obj);
- //有一个方法是找出数组元素在数组中的位置
- NSUInteger i = [array indexOfObject:obj];
- }
- [array enumerateObjectsUseingBlock:^(id obj, NSUInteger idx,BOOL *stop){
- //obj就是每次取出来的对象
- //如果想停止,则调用*stop = YES;stop是指针,*stop才是变量值。
- }]
- NSSoredDescriptor sortDescriptroWithKey:对象的成员变量 asceding:升序降序。
- array sortedArrayUsingDescritptor:array];
2、判断一个路径是文件还是文件夹
- //单例模式,整个文件系统,公用一个文件管理
- NSFileManger *mgr = [NSFileManager deaultManger];
- //判断文件的扩展名,如果是.m或.h文件才计算
- NSStting *str =[path pathExtension];
- //判读一个路径里面试文件还是文件夹
- BOOL dir = NO;
- //程序执行完后,就会改变bool的值,返回值是传的路径是否存在
- BOOL ifExist =[mgr filesExistAtPath:path isDirectory:*dir];
- 如果是陌路dir==YES,然后取得文件夹里的所有文件
- NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil];
3、NSMutableArray
- addObject//添加对象方法
- removeAllObject//删除所有对象
- removeObject:Object//删除指定对象
- removeObjectAtIndex:Int//删除指定位置的对象
- 快速创建可变数组,不能@[];返回的是不可变数组。
- setWithObject://类方法添加对象构造一个不可变set
- anyObject//随即访问,没有顺序
- addObject
- removeObject
- set和array的共同点都是集合,都有一个可变的子类,都职能存放oc对象。
4、NSDictionary NSMutableDictionary
- //字典也是无序的,当设置重复key值,则覆盖
- NSDictionary *dic = [NSDictionary dictionatyWithObject: forkey:];
- NSDictionary *dic = [NSDictionary dictionaryWithObjects:NSArray forkeys:NSArray];
- NSDictionary *dic = @{key : object,};
- dic[@“”];
- [dic objectForKey:@“”]
- //遍历字典,两中方法allKeys取出所有的key值装在一个数组中,之后循环取值。
- //遍历
- enumerateKeysAndObjectsUseingBlock:^(id, id obj, BOOL *stop)
//数组不能直接复制,需要使用函数拷贝,如果使用指针数组可以直接赋值
/*temp=p[i];
p[i]=p[j];
p[j]=temp;*/
strcpy
(temp, p[i]);
strcpy
(p[i], p[j]);
strcpy
(p[j], temp)