您的位置:首页 > 移动开发 > Objective-C

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: