一 结构体
1 NSRange //位置 //长度
(location length)@"i love you"//you的位置
NSRange r = NSMakeRange(7,3);
NSString *str = @"i love you";
//查找某个字符串在str中的位置
//如果找不到 lenght = 0;location =NSNotFound =-1
NSRange range =[str rangeofString:@"you"];
//输出%ld range.location,range.lenght
2 NSPoint/CGPoint
CGPoint p = NSMakepoint(10,10);//(坐标)
NSpoint p1 = CGPointMake(10,10);//常用
//将结果体转成字符串
NSString *STR = NSStringFrompoint(p1);
3 NSSize\CGSize
NSSize S = CGSizeMake(111,55);
NSSize S1 = NSMakeSize(123.44);
CGSize s2 = NSMakeSize(120,34);
4 NSRect\CGRect//代表一个矩形
CGRect //位置和尺寸 NSsize位置 宽高
CGRect = CGRectMake(0,0,100,50);
CGRect r3 = {p1,p2};
CGPointZero ==CGPointMake(0,0)//表示原点
5 结构体常用函数//使用函数的前提 添加 CoreGraphics这个框架
(1)CGPointEqualpoint(CGPointMake(10,10),CGPointMake(12,12));//判断两个点是否相同
(2) CGRectContainsPoint( CGPointMake(5,2,6,4),CGPointMake(,4,5,));//范围内包括不包括这个点(4,5)
二 NSString 类
一
1 NSString //不可变字符串
(1) 字符串创建
NSString *str = @"jimi";
NSString *S1 = [[NSString alloc] initwithformat:@"jimi"];
// c语言字符串 转OC字符串
NSString *S2 =[[NSStringalloc]initwithUTF8String:"jack"];
// OC 字符串 转C语言字符串
const char *c = [S2 UTF8String];
( 2) 冲文件中读取字符串
NSString *s3 = [[NSString alloc]ininwithContentsofFile:@"//路径"encoding:NSUTF8StringEncoding error];
//URL 资源路径
// 协议头 网络上fttp 万能的 // 本地资源 File// 只支持读取
(3)//把字符串写到文件里面
2 NSMutablestring //可变字符串
//继承 自NSString
NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"];
拼接内容到s1的后面
[ s1 appendString:@" 11 12"];
三 NSArray
1 NSArray//集合类
//集合类 不可变数组 OC数组 不能存放基本数据类型 只能存放OC对象
//OC数组不能存放空值
1.NSArray的创建
NSArray *array2 = [NSArray arrayWithObject:@"jack"];
// nil是数组元素结束的标记
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
// [array2 count];
//NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];
// 快速创建一个NSArray对象
NSArray *array4 = @[@"jack", @"rose", @"4324324"]
2.NSArray的元素个数
NSLog(@"%ld", array3.count);
3.NSArray中元素的访问
NSLog(@"%@", [array3 objectAtIndex:1]);
//array3[1];
NSLog(@"%@", array3[0]);
}
数组的遍历方法
Person *p = [[Person alloc] init];
NSArray *array = @[p, @"rose", @"jack"];
(1)for (int i = 0; i<array.count; i++)
{
NSLog(@"%@", array[i]);
}
(2) id obj代表着数组中的每一个元素
int i = 0;
for (id obj in array)
{
// 找出obj元素在数组中的位置
NSUInteger i = [array indexOfObject:obj];
NSLog(@"%ld - %@", i, obj);
i++;
if (i==1)
{
break;
}
}
(3)
array enumerateObjectsUsingBlock:
// 每遍历到一个元素,就会调用一次block
// 并且当前元素和索引位置当做参数传给block
^(id obj, NSUInteger idx, BOOL *stop)
{
NSLog(@"%ld - %@", idx, obj);
if (idx == 0)
{
// 停止遍历
*stop = YES;
}
}];
2 NSMutableArray
//可变数组
/* 错误写法
NSMutableArray *array = @[@"jack", @"rose"];
[array addObject:@"jim"];
*/
SMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];//创建可变数组
// 添加元素
[array addObject:[[Person alloc] init]];
[array addObject:@"jack"];
删除指定的对象
// [array removeObject:@"jack"];
四 NSNumber
//继承自NSValue
//基本数据类型转成对象
NSNumber *num = [NSNumber numberWithInt:10];
//把10 传进字典里面
NSDictionary *dict = @{
@"name" : @"jack",
@"age" : num
};
@20 将 20包装成一个NSNumber对像
将各种基本数据类型包装成NSNumber对象
@10.5;
@YES;
@'A'; // NSNumber对象
@"A"; // NSString对象
// 结构体--->OC对象
CGPoint p = CGPointMake(10, 10);
// 将结构体转为Value对象
NSValue *value = [NSValue valueWithPoint:p];
// 将value转为对应的结构体
// [value pointValue];
NSArray *array = @[value ];
五 NSSet
//没有顺序
NSSet和NSArray的对比
1> 共同点
* 都是集合,都能存放多个OC对象
* 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)
* 本身都不可变,都有一个可变的子类
2> 不同点
* NSArray有顺序,NSSet没有顺序
NSMutableSet *s = [NSMutableSet set];
// 添加元素
[s addObject:@"hack"];
// 删除元素
// [s removeObject:<#(id)#>];
NSDictionary //集合类
//字典
字典:
key ----> value
索引 ----> 文字内容
里面存储的东西都是键值对
创建方式
(1)NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];
(2) NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"jack", @"北京"];
/ NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
返回的是键值对的个数
添加键值对
// 添加键值对
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:@"jack" forKey:@"name"];
移除键值对
dict removeObjectForKey:<#(id)#>];
NSString *str = dict[@"name"]
字典不允许有相同的key,但允许有相同的value(Object)
字典的无序的
六 NSDate
/ 创建一个时间对象
NSDate *date = [NSDate date];
// 打印出的时候是0时区的时间(北京-东8区)
NSLog(@"%@", date)
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; |