黑马程序员——Objective-C——Foundation

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———


1.Foundation框架

要想使用Foundation中的数据类型,,包含他的主头文件即可即:

#import <Foundation.Foundation.h>

2.结构体NSRange

NSRange range = NSMakeRange(location,length); // location是位置,length是长度
NSString *str = @”abcdefghijk”;
NSRange range = [str rangeOfString:@”bcd”]; // 获取字符串的范围
NSRange range = [str rangeOfString:@”xyz”]; // 如果字符串不存在,则length = =0,location == NSNotFound
// NSNotFound 就是-1;

3.结构体point、size、rect

1>说明:

NSPoint == CGPoint; // 表示一个点
NSSize == CGSize;// 表示宽度和高度
NSRect == CGRect; // 表示一个区域
// 开发中一般都用CG

2>创建

CGPoint p = CGPointMake(0,0);   
CGSize s = CGSizeMake(100,50);
CGRect r1 = CGRectMake(0,0,100,50);  // 是点和一块范围的组合
CGRect r2 = {{0,0},{100,50}};
CGRect r3 = {p,s};
CGRect r4 = {CGPointZero,CGSizeMake(100,50)}; // CGPointZero是(0,0)

3>其他用法

// 比较两个点是不是同一个点
CGPointEqualToPoint(CGPointMake(0,0),CGPointMake(0,2));
// 比较两个size
CGSizeEqualToSize(s1,s2);
// 比较两个rect
CGRectEqualToRect(r1,r2);
// 判断一个点是否在一个区域
CGRectContainsPoint(r,p);
// 上面四种比较均返回BOOL类型

注意:这些函数需要添加CoreGraphics框架,Foundation中只有声明

4.NSString和NSMutableString

NSString:不可变的

NSMutableString:可变的

1>NSString (类方法,对象方法相似)

NSString *str1 = [NSString stringWithFormat:@””];
// C字符串变为OC字符串
NSString *str2 = [NSString stringWithUTF8String:(const char *)]; 
// OC字符串变为C字符串
[str2 UTF8String];
// 读取文件
NSString *str3 = [NSString stringWithContentsOfFile:@”路径” encoding:NSUTF8StringEncoding error:nil];
// URL路径
NSString *str4 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error :nil];
//URL路径格式:协议头:// 路径
NSURL *url = [NSURL URLWithString:@”http://www.baidu.com”];

2>NSMutableString

// 包含NSString的创建方法,因为是子类
// 创建
NSMutableString *str = [NSMutableString stringWithFormat:@”abc”];
// 拼接
[str appendString:@”def”];
// 删除
[str deleteCharactersInRange:[str rangeOfString:@”bc”]];
// 注意下面代码(str是NSString类型)
NSString *str2 = [str stringByAppendingString:@”gh”];
// 说明:虽然写法相似但是str是不变的,而是生成新字符串

5.NSArray和NSMutableArray

1>说明

a. 只能存放OC对象,不能存放非OC类型

b. 不能存放nil值

2> NSArray

NSArray *arr = [NSArray array]; // 该数组永远是空数组
// 创建单个元素的数组
NSArray *arr1 = [NSArray arrayWithObject:@”danDan”];
// 创建多个元素的数组
NSArray *arr2 = [NSArray arrayWithObjects:@”gouDan”,@”lvDan”,@”danDan”,nil]; // 注意以nil结尾
// 快速创建
NSArray *arr3 = @[@” gouDan”,@”lvDan”,@”danDan”];  // 这个不需要nil结尾
// 获得数组元素个数
array.count;  // 或者 [array count];
// 获取某个位置的元素
[array3 objectAtIndex:0];  // 或者array3[0];

3>NUMutableArray

// 包含NSArray创建方法(不包括快速创建)
// NSMutableArray *arr = [NSMutableArray arrayWithObjects:@ gouDan”,@”lvDan”,@”danDan”,nil];
// 添加元素
[arr addObject:@”jim”];  // 不可以添加nil
// 删除元素
[arr removeObjectAtIndex:1];
[arr removeObject:@”jim”];

6.NSSet和NSMutableSet

// 和NSArray的区别是没有顺序
// 创建方法相似:Array变为Set
// 随机取出元素
[s anyObject]; 
// 注意不能使用Index操作,因为是无序的

7.NSDictionary和NSMutableDictionary

1>说明

a. 存储的是键值对

b. 字典也是无序的

c. 如果添加的元素Key跟原字典冲突,会覆盖之前的值

2>NSDictionary

NSDictionary *d 1= [NSDictionary dictionaryWithObjectsAndKeys:
@”gouDan”,@”name”,
@”beijing”,@”address”,nil]; //同样以nil结尾
// 快速创建不用nil结尾
NSDictionary *d2 = @{@”name”:@”gouDan”,@”address”:@”beijing”};
// 取出key对应的元素
id obj = [d2 objectForKey:@”name”];
id obj = @[@”name”];
// 取出键值对个数
d.count; 

3>NSMutableDictionary

NSMutableDictionary *d = [NSMutableDictionary dictionary];
// 添加
[d setObject:@”gouDan” forKey:@”name”];
// 删除
[d removeObjetForKey:@”name”];
// 拿出所有key
[d allKeys];
// 使用block遍历
[d enumrateKeysAndObjectsUsingBlock: 
^(id key,id obj,BOOL *stop){
	NSLog(@”%@-%@”,key,obj);
}];

8.NSNumber和NSValue

1>NSNumber

// 整型转换为NSNumber对象
NSNumber *n1 = [NSNumber numberWithInt:3];
NSNumber *n2 = @12.3;  // @’A’  @YES
// NSNumber转换成int
[n1 intValue];

2>NSValue(NSNumber的父类)

// 包装结构体.其他结构体类似
CGPoint p = CGPointMake(0,0);
NSValue *value = [NSValue valueWithPoint:p];
// 转会结构体
[value pointValue];

9. NSDate

NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 没有类方法
formatter.dateFormat = @”yyyy-MM-dd HH:mm:ss”; // 设置格式
NSString *str = [formatter stringFromDate:date]; 








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值