黑马程序员——Foundation框架(一)
2014-09-02 05:13
295 查看
----------------------
iOS开发、iOS培训、期待与您交流! ----------------------
1.结构体:NSRange 、NSPoint(CGPoint)、 NSSize(CGSize)、 NSRect(CGRect)
NSRange :表示范围,有两个成员变量:location ,length
例如:@“I love you”求出love的范围
int main()
{
NSRange r1= NsMakeRange{2,4};
return 0;
}
例如:查找出某个字符串在str中的范围
NSString *str = @"I love you";
NSRanger r2 = [str rangeOfString :@"ve"];
NSLog(@"loc =%ld,len=%ld",r2.location,r2.length);
Point, Size, Rect和Range都差不多用法
CGPoint p1 = CGPointMake(20,20);// 表示一个坐标
CGSize s1 = CGSizeMake(200,100);// 表示长宽
CGRect r1 = CGRectMake(0,0,100,122);// 表示方块在坐标的某一块
2.字符串:NSString NSMutableString
NSString :不可变字符串,一旦赋值之后,以后就不能改变该对象的内容了
NSMutableString:可变字符串,以后想增就增,想删就删
例如:
int main()
{
NSMutableString *s1 = [NSMutableString stringWithFormat: @"my age is 10"]'
// 拼接到后面去
[s1 appendString :@"11 12 13"]; // 结果是 my age is 10 11 12 13
// 获取is的范围
NSRange range = [s1 rangeOfString :@"is"];
[s1 deleteCharactersInRange:range];// 删除Range的内容
NSLog(@"s1= %@",s1); // 结果 my age 10 11 12 13
}
3.数组:NSArray NSMutableArray
NSArray :不可变数组
1.快速创建一个NSArray对象
NSArray *array = @[@”jack”,@”rose”,@”jim”];
2.快速访问数组中的元素
NSLog(@”%@”,array[2]);// 编译器遇到这行代码,自动翻译成:NSLog(@”%@”,[array object AtIndex:2]);
3.数组的快速遍历
// id obj 代表着数组中的每一个元素
for(id obj in Array)
{
// 找出obj元素在数组中的位置
NSUInteger i = [array indexOfObject:obj];
NSLog(@"%d-%d",i,obj);
}
4.利用block遍历
// 每遍历到一个元素,就会调用一次block,并且当前元素和索引位置当做参数传给block
[array enumerateObjectsUsingBlock: ^(id obj,NSUInteger idx, BOOL *p)
{
NSLog(@"%ld-%ld",idx,obj);
if(idx == 1)
{
// 停止遍历
*stop = YES;
}
}
];
NSMutableArray:可变数组
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"jack",@"rose",nil];
// 添加元素
[array addObject:[[Person alloc] init]];
[array addObject:@"jake"];
// 删除所有元素
[array removeAllObjects];
// 删除制定的对象
[array removeObject:@"jack"];
[array removeObjectAtIndex:0];
/*
注意点:@[@"jack",@"rose"]:只能用于创建不可变数组NSArray
错误写法:
NSMutableArray *array = @[@"jack",@"rose"];
[array addObject :@"jim"];
NSMutableArray 和 addObject 是可变数组 而@[@"jack",@"rose"] 是不可变数组
*/
4.NSSet和NSArray的对比
1.共同点:①都是集合,都能存放多个OC对象
②只能存在OC对象,不能存放非OC对象
③本身不可变,都有一个可变的子类
2.不同点:NSArray 有序 NSSet 无序
iOS开发、iOS培训、期待与您交流! ----------------------
1.结构体:NSRange 、NSPoint(CGPoint)、 NSSize(CGSize)、 NSRect(CGRect)
NSRange :表示范围,有两个成员变量:location ,length
例如:@“I love you”求出love的范围
int main()
{
NSRange r1= NsMakeRange{2,4};
return 0;
}
例如:查找出某个字符串在str中的范围
NSString *str = @"I love you";
NSRanger r2 = [str rangeOfString :@"ve"];
NSLog(@"loc =%ld,len=%ld",r2.location,r2.length);
Point, Size, Rect和Range都差不多用法
CGPoint p1 = CGPointMake(20,20);// 表示一个坐标
CGSize s1 = CGSizeMake(200,100);// 表示长宽
CGRect r1 = CGRectMake(0,0,100,122);// 表示方块在坐标的某一块
2.字符串:NSString NSMutableString
NSString :不可变字符串,一旦赋值之后,以后就不能改变该对象的内容了
NSMutableString:可变字符串,以后想增就增,想删就删
例如:
int main()
{
NSMutableString *s1 = [NSMutableString stringWithFormat: @"my age is 10"]'
// 拼接到后面去
[s1 appendString :@"11 12 13"]; // 结果是 my age is 10 11 12 13
// 获取is的范围
NSRange range = [s1 rangeOfString :@"is"];
[s1 deleteCharactersInRange:range];// 删除Range的内容
NSLog(@"s1= %@",s1); // 结果 my age 10 11 12 13
}
3.数组:NSArray NSMutableArray
NSArray :不可变数组
1.快速创建一个NSArray对象
NSArray *array = @[@”jack”,@”rose”,@”jim”];
2.快速访问数组中的元素
NSLog(@”%@”,array[2]);// 编译器遇到这行代码,自动翻译成:NSLog(@”%@”,[array object AtIndex:2]);
3.数组的快速遍历
// id obj 代表着数组中的每一个元素
for(id obj in Array)
{
// 找出obj元素在数组中的位置
NSUInteger i = [array indexOfObject:obj];
NSLog(@"%d-%d",i,obj);
}
4.利用block遍历
// 每遍历到一个元素,就会调用一次block,并且当前元素和索引位置当做参数传给block
[array enumerateObjectsUsingBlock: ^(id obj,NSUInteger idx, BOOL *p)
{
NSLog(@"%ld-%ld",idx,obj);
if(idx == 1)
{
// 停止遍历
*stop = YES;
}
}
];
NSMutableArray:可变数组
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"jack",@"rose",nil];
// 添加元素
[array addObject:[[Person alloc] init]];
[array addObject:@"jake"];
// 删除所有元素
[array removeAllObjects];
// 删除制定的对象
[array removeObject:@"jack"];
[array removeObjectAtIndex:0];
/*
注意点:@[@"jack",@"rose"]:只能用于创建不可变数组NSArray
错误写法:
NSMutableArray *array = @[@"jack",@"rose"];
[array addObject :@"jim"];
NSMutableArray 和 addObject 是可变数组 而@[@"jack",@"rose"] 是不可变数组
*/
4.NSSet和NSArray的对比
1.共同点:①都是集合,都能存放多个OC对象
②只能存在OC对象,不能存放非OC对象
③本身不可变,都有一个可变的子类
2.不同点:NSArray 有序 NSSet 无序
相关文章推荐
- 黑马程序员—— Foundation框架NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue
- 黑马程序员_OC中的Foundation框架学习
- 黑马程序员——IOS基础(Foundation框架一)
- 黑马程序员——oc之Foundation框架
- 黑马程序员_Foundation框架01_结构体
- 黑马程序员——ios开发基础之OC中Foundation框架(二)、copy以及单例
- 黑马程序员_OC学习之Foundation框架1
- 黑马程序员——Foundation框架——NSArray和NSMutableArray的介绍及使用
- 黑马程序员——Foundation框架——NSMutableString常用方法
- 黑马程序员——Foundation框架——NSNumber类介绍和使用
- 黑马程序员——Foundation框架之结构体、字符串和集合
- 黑马程序员——OC学习笔记08 Foundation框架常用的几个结构体和类。
- 黑马程序员 Foundation框架(续)
- 【黑马程序员】Foundation框架-NSMutableString
- 黑马程序员--Foundation框架-NSS 4000 tring基本用法
- 黑马程序员--Foundation框架下三大类简介和基本方法
- 黑马程序员——入学Blog10----Foundation框架常用的结构体与类
- 黑马程序员——foundation框架之结构体
- 黑马程序员_OC学习之Foundation框架2
- 黑马程序员——foundation框架之NSNull,NSObject和反射