Foundation框架(一)
来源:互联网 发布:淘宝视频提取真实网址 编辑:程序博客网 时间:2024/06/05 19:58
Foundation框架是IOS开发和MAC开发的基础框架,其中包含了很多开发中经常用到的数据类型。
一、NSRange
1.NSRange的定义
NSRange包含两个属性,location和length
typedef struct _NSRange { NSUInteger location; NSUInteger length;} NSRange;
2.创建方式
NSRange r1 = {2, 4}; // 不用NSRange r2 = {.location = 2, .length = 4};// 不用NSRange r3 = NSMakeRange(2, 4); // 掌握
3.使用方法
NSString *str = @"my name is alin";// 找到@"alin"在str中的位置NSRange range = [str rangeOfString:@"alin"];NSLog(@"location=%ld, length=%ld", range.location, range.length);
如果找不到,length=0,range=NSNotFound=-1
二、结构体NSPoint,NSSize与NSRect
使用它们需要引用CoreGraphics框架
点击工程->Build phases->Link binary With Libraries
点击增加,搜索CoreGraphics框架
NSSize与NSRect和NSPoint有类似的定义和使用方法,下面以NSPoint为例来介绍
1.NSPoint的定义
NSPoint在NSGeometry.h文件中的定义
typedef CGPoint NSPoint;
在CGGermetry.h中,CGPoint的定义如下
struct CGPoint { CGFloat x; CGFloat y;};
2.创建方式
CGPointMake(CGFloat x, CGFloat y) 或者
NSMakePoint(CGFloat x, CGFloat y)
3.使用方法
1) 将结构体转换为字符串
NSStringFromPoint(NSPoint aPoint)
2) 零值
以CGPointZero表示,代表原点
3) 比较两点位置
bool CGPointEqualToPoint(CGPoint point1, CGPoint point2);
4) 矩形内包含点
bool CGRectContainsPoint(CGRect rect, CGPoint point);
三、Foundation框架常用类
开发中常用的类有NSString,NSArray,NSSet,NSDictionary,NSDate。其中NSString、NSArray、NSSet和NSDictionary有可变类,如NSMutableString。
1.NSString和NSMutableString
1)NSString的创建:
// 直接创建NSString *s1 = @"jack"; // 基本已不使用NSString *s2 = [[NSString alloc] initWithString:@"jack"]; // 通过格式化创建NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10]; // C字符串转化为OC字符串NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"]; // OC字符串转化为C字符串const char *cs = [s4 UTF8String]; // 从文件读取 NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil]; // 由URL创建,两种创建URL的方式NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/alin/Desktop/1.txt"];NSURL *url = [NSURL fileURLWithPath:@"/Users/alin/Desktop/1.txt"];NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
与上面对象方法对应,框架提供了有一样功能的类方法,开发中一般使用类方法。
2) 字符串写入文件
上面是从文件读取字符串,如果想把字符串写进文件,使用
// 字符串写入文件[@"要写入的字符串" writeToFile:@"/Users/alin/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
atomically:YES : 表示如果中途写入失败,文件不会创建,安全性高。NO表示中途写入失败还会创建文件。
NSMutableString:代表可变字符串,创建后可以随时改变,与NSString不同的是,NSString里面的字符串一经初始化,就不可改变。
NSMutableString *s1 = [NSMutableString stringWithFormat:@"123"];// 在字符串后添加字符串[s1 appendString:@"456"];// 删除指定范围的字符串”5”[s1 deleteCharactersInRange:NSMakeRange(4,1)];// 删除固定字符串”23”NSRange range = [s1 rangeOfString:@"23"];[s1 deleteCharactersInRange:range]; // 创建一个新字符串,原来的没改变NSString *s2 = @"134";NSString *s3 = [s2 stringByAppendingString:@"678"];NSLog(@"%@",s3);
2.NSArray与NSMutableArray
1) NSArray的创建:
// NSArray是不可变数组,所以这个array永远是空数组// NSArray *array = [NSArray array]; // 通过单个对象创建NSArray *array2 = [NSArray arrayWithObject:@"alin"]; // 通过多个对象创建,nil是数组元素结束的标记NSArray *array3 = [NSArray arrayWithObjects:@"alin", @"阿青", nil]; // 快速创建一个NSArray对象NSArray *array4 = @[@"alin", @"阿青", @"阿婷"]; // 获取数组里面对象的个数NSLog(@"%ld", array3.count); // 通过objectAtIndex方法访问NSLog(@"%@", [array3 objectAtIndex:1]); // 通过下标快速访问NSLog(@"%@", array3[0]);
<img src="http://img.blog.csdn.net/20150129212536883" alt="" />
2) NSArray的遍历
使用for循环遍历:
for (int i = 0; i<array.count; i++){ NSLog(@"%@", array[i]);}
使用for(... in ...)遍历:
for (id obj in array){ NSLog(@"%@", obj);}
使用enumerateObjectsUsingBlock方法遍历:
// 每遍历一个对象,调用一次Block,并且将对象obj和对象的索引idx传递给Blockarray enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"%ld---%@", idx, obj);// 可以控制停止遍历 if (idx == 1) { stop = YES; } }];
3) NSMutableArray
// 创建NSMutableArrayNSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil]; // 添加元素[array addObject:[[Person alloc] init]];[array addObject:@"jack"]; // 删除所有元素//[array removeAllObjects]; // 删除指定的对象// [array removeObject:@"jack"];[array removeObjectAtIndex:0]; // 错误写法// [array addObject:nil]; // 错误写法, 因为@[]创建的是NSArrayNSMutableArray *array = @[@"jack", @"rose"];
- Foundation框架(一)
- Foundation框架常用类(一)
- 黑马程序员-----Foundation框架续(一)
- Foundation框架学习(一)NSString
- 【黑马程序员】Foundation框架(一)
- (一)概述:Swift与Foundation框架
- Foundation框架-学习笔记<一>
- object-c学习笔记:Foundation框架常用类(一)
- 黑马程序员——Foundation框架(一)
- 黑马程序员——IOS基础(Foundation框架一)
- 黑马程序员——foundation框架(一)
- OC学习笔记-Foundation框架(一)
- Objective-C Foundation框架实践——NSString(一)
- Objective-C Foundation框架实践——NSMutableString(一)
- Objective-C Foundation框架实践——NSArray(一)
- Objective-C Foundation框架实践——NSMutableArray(一)
- Objective-C Foundation框架实践——NSDictionary(一)
- Objective-C Foundation框架实践——NSMutableDictionary(一)
- Swift之SDWebImage第三方框架
- java3
- LeetCode-Remove Nth Node From End of List
- Oracle Rac root.sh报错 Failed to create keys in the OLR, rc = 127 libcap.so.1
- java3
- Foundation框架(一)
- HttpClient之https微信获取视屏media_id
- singleton的实现
- IIS信息管理器进行视图浏览时报错“/”应用程序中的服务器错误
- zoj_2812 Quicksum
- typeid详解
- github项目
- BeanUtils.copyProperties(vo,po) 切记!!!
- CArray添加元素异常引发的思考