ObjectC语言基础2—Foundation、结构体、字符串、集合
2015-02-27 20:53
393 查看
一、结构体
1、CGRect,CGPoint,CGSize,NSRange
[java] view
plai
//结构体
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、不可变字符串的创建的几种方法
[java] view
plai
//字符串的创建
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
都能用。
[java] view
plai
//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对象,不能放基本数据类型,为不可变数组。
[java] view
plai
//不可变数组,你在定义它的时候,没有存放任何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、判断一个路径是文件还是文件夹
[java] view
plai
//单例模式,整个文件系统,公用一个文件管理
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
[java] view
plai
addObject//添加对象方法
removeAllObject//删除所有对象
removeObject:Object//删除指定对象
removeObjectAtIndex:Int//删除指定位置的对象
快速创建可变数组,不能@[];返回的是不可变数组。
4、NSSet NSMutableSet
[java] view
plai
setWithObject://类方法添加对象构造一个不可变set
anyObject//随即访问,没有顺序
addObject
removeObject
set和array的共同点都是集合,都有一个可变的子类,都职能存放oc对象。
4、NSDictionary NSMutableDictionary
[java] view
plai
//字典也是无序的,当设置重复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)
1、CGRect,CGPoint,CGSize,NSRange
[java] view
plai
//结构体
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、不可变字符串的创建的几种方法
[java] view
plai
//字符串的创建
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
都能用。
[java] view
plai
//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对象,不能放基本数据类型,为不可变数组。
[java] view
plai
//不可变数组,你在定义它的时候,没有存放任何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、判断一个路径是文件还是文件夹
[java] view
plai
//单例模式,整个文件系统,公用一个文件管理
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
[java] view
plai
addObject//添加对象方法
removeAllObject//删除所有对象
removeObject:Object//删除指定对象
removeObjectAtIndex:Int//删除指定位置的对象
快速创建可变数组,不能@[];返回的是不可变数组。
4、NSSet NSMutableSet
[java] view
plai
setWithObject://类方法添加对象构造一个不可变set
anyObject//随即访问,没有顺序
addObject
removeObject
set和array的共同点都是集合,都有一个可变的子类,都职能存放oc对象。
4、NSDictionary NSMutableDictionary
[java] view
plai
//字典也是无序的,当设置重复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)
相关文章推荐
- 黑马程序员——Object-C基础(十一)Foundation之结构体、字符串
- 黑马程序员——Foundation框架之结构体、字符串和集合
- 黑马程序员——IOS基础——Foundation框架——结构体、字符串、数组
- 黑马程序员——Foundation框架学习——OC结构体、字符串、OC集合、NSNumber,NSValue、OC时间对象
- C#语言学习--基础部分(十三)枚举类型和结构体
- C#语言学习--基础部分(十七)集合ArrayList,Queue,Stack,SortedList,Hashtable
- 常见C/C++语言基础面试题集合
- Python语言基础(二) -- 字符串格式化
- c语言基础--数组和指针---字符串
- 使用Tuxedo将C语言中的结构体转换成Xml格式的字符串
- C语言基础-结构体和联合体 [转]
- C#语言学习--基础部分(十四)枚举类型和结构体(续)
- PHP从入门到精通——读书笔记(1-5章:语言基础,流程控制,字符串操作等)
- ObjC学习9-Foundation框架之数字、字符串和集合
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- C语言基础-结构体和联合体
- Java语言基础--集合
- Java笔记之语言基础_字符与字符串
- 黑马程序员-Java语言基础– 集合框架 第14天
- java语言基础之4种代码块以及构造函数比较大集合-java基础精品笔记-作者:逝秋