1,字符串

字符串的创建:两种常用初始化方式

NSString *str=[[NSString alloc]initWithFormat:@"i am a boy"];

NSString *str1=[NSString stringWithFormat:@"i am a boy"];

NSString *str2=@"i am a good boy";

字符串的操作:

字符串的截取

strMax=[str2 substringToIndex:5];

strMax=[str2 substringFromIndex:3];

strMax=[str2 substringWithRange:NSMakeRange(2, 4)];

获取字符串长度

NSLog(@"%lu",[strMax length]);

获取某段字符串在字符串的位置及其长度:用点语法

NSRange range=[str rangeOfString:@"boy"];

NSLog(@"字符串位置:%ld  字符串长度: %ld",range.location,range.length);

分割字符串

NSMutableArray *arry=[str componentsSeparatedByString:@""];

字符串的拼接

strMax=[str1 stringByAppendingString:str2];

可变字符串(NSMutableStringNSMutableString *str=[[NSMutableString alloc]initWithFormat:@"i am a boy"];

增加三种方法:插入 删除 替换

[str insertString:@"spider-man" atIndex:2];

[str deleteCharactersInRange:NSMakeRange(2, 5)];

[str replaceCharactersInRange:NSMakeRange(3, 8) withString:@"iron-men"];

 

 

2,数组

数组的初始化

字符串的操作

取某下标元素

NSString *str=[arr objectAtIndex:0];

数组容量

NSInteger count=[arr count];

取某元素下标

NSUInteger index=[arr indexOfObject:@"e"];

判断是否包含某种元素,返回bool值

BOOL is=[arr containsObject:@"key"];

可变数组(NSMutableArray

替换某个数组中内容

[array replaceObjectAtIndex:0 withObject:@"petter"]; 
交换两个下标元素内容
[array exchangeObjectAtIndex:2 withObjectAtIndex:5]; 
将另一个数组内容添加到这个数组内
[array addObjectsFromArray:array1]; 
删除元素
[array removeObjectAtIndex:0]; 
[array removeObject:@"bat-man"];
删除所有元素
[array removeAllObjects]; 

遍历数组(两种方法  for 循环 和 for in)

 

3,字典

创建字典并用数组作为对象对其进行初始化

NSArray *array = [NSArray arrayWithObjects:@"iron-men",@"tony",@"captain", @"setef",nil];

NSMutableDictionary *dic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:array,@"superhero", nil];

向字典中添加元素

 [dic setObject:@"petter" forKey:@"spider-men"];

删除字典中的key

 [dic removeObjectForKey:@"spider-men"];

遍历字典

方法一:快速遍历

for (id key in dic) {

        id value=[dic objectForKey:key];

        NSLog(@"%@",value);

}

方法二,先取出再输出

NSArray *key=[dic allKeys];

 for (int i=0;i<[key count];i++){

        id key1=[key objectAtIndex:i];

        id value=[dic objectForKey:key1];

        NSLog(@"%@",value);

    }

 

 

4,集合NSSet

要点:NSSet元素是无序的 ,且没有重复

 两种初始化方法

NSSet *setOne=[[NSSet alloc]initWithObjects:@"1",@"2",@"34",@"45", nil];

NSSet *setTwo=[NSSet setWithObjects:@"1",@"678",@"4536",@"4", nil];

直接转数组

NSMutableArray *arr=[[NSMutableArray alloc]initWithObjects:[setOne allObjects],nil];

随机取出任意元素

 [setOne anyObject];

判断集合中是否存在某元素,返回bool值

BOOL is=[setTwo containsObject:@"3333"];

增加集合中的元素,by对象 by集合 by数组

[setTwo setByAddingObject:@"yy"];

[setTwo setByAddingObjectsFromSet:setOne];

[setTwo setByAddingObjectsFromArray:arr];

集合间的数学操作:减集,交集,并集(都是对可变集合而言NSMutableSet

[setTwo minusSet:setOne];

[setTwo intersectSet:setOne];

 [setTwo unionSet:setTwo];

 

 

5,NSNumber和  NSValue 

NSNumber和  NSValue 都是包装类,其中NSValue是NSNumber的父类,他们用于包装一些int, folat ,long ,char,short等基本数据类型

通过包装就可以将基本数据类型添加到NSArry和NSSet等(要求元素必须是对象)中

NSNumber *n1=[NSNumber numberWithInt:23];

NSNumber *n2=[NSNumber numberWithFloat:5.6f];

[arr addObject:n1];

[arr addObject:n2];

 

 

6,日期

获取当前时间

NSDate *date1=[NSDate date];

从现在起一天后的日期

NSDate *date2=[[NSDate alloc]initWithTimeIntervalSinceNow:3600*24];

从现在起一天前的日期

NSDate *date2=[[NSDate alloc]initWithTimeIntervalSinceNow:-3600*24];

获取当前时区的标准时间

NSDate *date1=[NSDate date];

NSLocale *cn=[NSLocale currentLocale];

NSLog(@"%@",[date1 descriptionWithLocale:cn]);

输出格式如下

2016-08-02 22:02:07.861 review[24866:1504438] 201682星期二中国标准时间 22:02:07

获取两个日期之间较早的日期

NSDate *earlier=[date2 earlierDate:date3];

获取两个日期之间晚的日期

NSDate *earlier=[date2 laterDate:date3];

两个日期的秒差

[earlier timeIntervalSinceDate:date3];

[earlier timeIntervalSinceNow];

两个日期间的比较,返回bool值

 

日期格式器(NSDateFormatter)

自定义输出格式

NSDateFormatter *format=[[NSDateFormatter alloc]init];

[format setDateFormat:@"yyyy-MM-dd-HH-mm"];

NSLog(@"%@",[format stringFromDate:date1]);

系统自带风格

[format setDateStyle:NSDateFormatterNoStyle];

[format setDateStyle:NSDateFormatterShortStyle];

[format setDateStyle:NSDateIntervalFormatterLongStyle];

[format setDateStyle:NSDateIntervalFormatterMediumStyle];

 

 

日历(NSCalendar)和日期组件(NSDateComponents

获取代表公历的NSCalendar对象

NSCalendar *gregorian=[[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

 

定时器(NStimer)

设定一个定时器

NSInteger _count;

NSTimer* _timer;

- (void) info:(NSTimer*)timer{

   NSLog(@"正在执行第%ld次任务",_count++);

    if (_count>10) {

        NSLog(@"取消执行定时器");

        [_timer invalidate];

    }

_timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(info:) userInfo:nil repeats:YES];

}