黑马程序员-----Foundation框架续(二)

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

Foundation常方法总结

1>NSString
//字符串创建
stringWithUTF8String:"c语言字符串" //C语言字符初始化OC字符串
stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding) error:(NSError**) //读取path所在文件内容,转成OC字符串,并指定编码为NSUTF8StringEncoding(UTF-8通用编码可以识别中文)
stringWithContentsOfURL:(NSURL *) encoding:(NSStringEncoding) error:(nil)
//字符串传入
-(NSString *)writeToFile:path atomically:(BOOL) encoding:NSUTF8String error:(NSError)
如果BOOL值为YES那么进行原子操作,创建一个中间临时文件
//大写转换
- (NSString *)upercaseString
//小写转换
- (NSString *)lowercaseString
//首字母大写,其他字母变小写
- (NSString *)capitalizedString
//字符串比较方法
- (BOOL)isEqualToString:(NSString *)aString;//调用字符串与aString内容是否相同
- (NSComparisonResult)compare:(NSString *)aString//相当于strcmp
NSOrderedAscending(升序,右边大于左边)
NSOrderedSame(字符串内容相同)
NSOrderedDescending(降序,左边大于右边)
//字符串搜索
- (BOOL)hasPrefix:(NSString *)aString;//是否已aString开头
- (BOOL)hasSuffix:(NSString *)aString;//是否已aString结束
- (NSRange)rangOfString:(NSString *)aString;//aString在字符串当中的范围,如果range.location == NSNotFound或者range.length == 0表示木有在字符串中找到aString
- (NSString *)NSStringFromRange:(NSRange);
- (NSRange)rangeOfString:(NSString *)aString option:(条件)
//字符串的截取
- (NSString)subStringFromIndex:(Interge)index;//从索引截取到结束(包括索引)
- (NSString *)subStringFromIndex:(Interge)index;//从头部开始截取到索引处(不包括索引)
- (NSString *)subStringWithRange:(NSRange)range;//截取range范围的字符串
//切割字符串
- (NSArray *)componentsSeparatedByString:(NSString *)separator;//以separator为分隔符,截取字符串,存入到NSArray
//字符串与路径
+ (NSString *)pathWithComponents:(NSArray/NSMutableArray *)array;//将array当中的所有字符串拼接成一个路径
- (NSArray *)pathComponents;//将一个路径分解成一个数组
- (BOOL)isAbsolutePath;判断是否为绝对路径,依据为前面有无“/”
- (NSString *)lastPathComponent;//获得最后一个路径
- (NSString *)stringByDeletingLastPathComponent;//删除最后一个目录
- (NSString *)stringByAppendingPathComponent:(NSString *)component;//添加下一级目录
//拓展名处理
- (NSString *)pathExtension;//获得拓展名
- (NSString *)stringByDeletingExtension;//删除拓展名,包括“.”
- (NSString *)stringByAppendingExtension:(NSString *)extension;
//数据类型转换
- (int)int/float/long/longlongValue;//转成int型
- (NSUInteger)length;//计算文字数
- (unichar)characterAtIndex:(int)index;//取出对应字符串
- (char *)UTF8String:(NSString *)aString;//转换成C语言的字符串
2>NSMutableString
- (id)initWithCapacity:(NSUInteger)capacity;//设置创建可变数组的大小,只是预先设置,数组依然可变。
- (void)setString:(NSString *)aString;//设置可变字符串内容
//拼接字符串
- (void)appendString:(NSString *)aString;
- (void)appendFormat:(NSString *)aString;
//替换字符串
- (void)replaceCharactersInRange:(NSRange)range WithString:(NSString *)aString;
//插入字符串,从loc开始插入
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
//删除字符串
- (void)deleteCharactersInRange:(NSRange)range;
3>NSArray
- (NSArray *)array;//创建空数组,永远为空的数组
+ (id)arrayWithObjects:(id)objects...,nil;//静态方法创建数组
//判断是否包含某个元素
- (BOOL)containsObject:(id)anObject;
- (id)lastObject;//返回最后一个元素
//给数组里的元素发送消息
makeObjectsPerformSelector:(SEL);
makeObjectsPerformSelector:(SEL) withObject:(id)arg;
//数组遍历
NSArray *array = [NSArray arrayWithObjects:...];
for(id obj in array)//快速遍历
- (void)enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){};
- (NSEnumerator *)objectEnumerator;//获得数组迭代器
- (NSEnumerator *)reverseObjectEnumerator;//反序迭代器(反向遍历元素)
NSEnumerator *enumerator = [array objectEnumerator];
id obj = nil;
while(obj = [enumerator nextObject]){
NSLog("obj = %@",obj);
}
//allObjects是取出没有被遍历过的对象,如果被遍历过(调用过nextObject)那么,可能没有值
- (NSArray *)allObjects;
//派生数组
- (NSArray *)arrayByAddingObject:(id)aObject;//给数组尾部添加一个元素,产生新数组
- (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)anArray;//尾部添加一个数组的所有元素,产生新数组
//数组截取
- (NSArray *)subArrayWtihRange:(Range *)arange;
- (NSString *)componentsJoinedByString:(NSString *)aString;//将数组元素用aString连接,拼接成新的字符串
//将数组元素写入文件,生成的是一个xml文件
- (void)writeToFile:(NSString *)path atomically:(BOOL)bool;
//从文件中读取数组内容(文件内容必须是xml的特定格式)
- (NSArray *)arrayWithContentsOfFile:(NSString *)path;
//数组排序
- (NSArray *)sortedArrayUsingSelector:(SEL);//返回一个排好序的数组,这里的SEL是用于指定元素的比较方法eg:[array sortedArrayUsingSelector:@selector(compare:)];
//自定义排序方法
- (NSComparisonResult)compareStudent:(Student *)stu
{
//先按照姓排序
NSComparisonResult result = [self.lastname compare:stu.lastname];
//如果姓相同再比较名字
if(NSOderedSame == result)
{
result = [self.firstname compare:stu.firstname];
}
return result;
}
//利用block排比较器comparator
[array sortedArrayUsingComparator:^NSComparisonResult(id obj1,id obj2){};
- (NSArray *)sortedArrayUsingComparator:^NSComparisonResult(Student *obj1,Student *obj2){
//先按照姓排序
NSComparisonResult result = [obj1.lastname compare:obj2.lastname];
//如果姓相同再比较名字
if(NSOderedSame == result)
{
result = [obj1.firstname compare:obj2.firstname];
}
return result;
}];
//利用排序描述器排序
//按照书名排序的排序描述器,这里并不使用系统为我们生成的"_book._name",而是直接使用@property后面的名字book.name
NSSortDescriptor *bookNameDesc = [NSSortDescrptor sortDescriptorWithKey:(NSString *)@"bookname" ascending:YES];
//按照姓排名的排序描述器,这里并不使用系统为我们生成的"_lastname",而是直接使用@property后面的名字lastname
NSSortDescriptor *lastNameDesc = [NSSortDescrptor sortDescriptorWithKey:(NSString *)@"lastkname" ascending:YES];
//按照名字排名的排序描述器,这里并不使用系统为我们生成的"_firstname",而是直接使用@property后面的名字firstname
NSSortDescriptor *firstNameDesc = [NSSortDescrptor sortDescriptorWithKey:(NSString *)@"firstname" ascending:YES];
//按顺序添加排序描述器
NSArray *desc = [NSArray arrayWithObjects:bookNameDesc, lastNameDesc, firstNameDesc, nil];
//- (NSArray *)sortedArrayUsingDescription:(NSArray *)anArray;
//利用排序排序描述器进行排序,将按照排序器数组的元素顺序排序
NSArray *array2 = [array sortedArrayUsingDescriptors:desc];
//打印array2
NSLog(@"%@",array2);
4>NSMutableArray
//添加元素
- (void)addObject/addObjects:(id)anObject;
//删除元素
- (void)removeAllObjects;
- (void)removeObject:(id)anObject;
- (void)removeObjectsAtIndexs:(NSIndexSet *)indexs;//删除indexs位置的所有元素
- (void)removeObject:(id)anObject inRange:(NSRange *)aRange;//在arange范围内找特定元素进行删除
- (void)removeObjectsInRange:(NSRange)range;//删除range范围内的所有元素
- (void)removeObjectsInArray:(NSArray *)otherArray;//删除同时存在于当前数组和otherArray当中的元素
//OC数组的内存管理,系统自动完成
对被添加的元素做一次retain操作,计数器+1;
对被删除的元素做一次release操作,计数器-1;
当数组被释放,会对所有元素都做一次release操作;
//替换元素
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
- (void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects;
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange;
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray;
- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
//排序
- (void)sortUsingDescriptors:(NSArray *)sortDescriptors;
- (void)sortUsingComparator:(NSComparator)cmptr;
- (void)sortUsingSelector(SEL)comparator;
5>NSDictionary(键值对)
//字典创建
+ (NSDictionary *)dictionaryWithObject:(id)anObject forKey:(id)anKey;
+ (NSDictionary *)dictionaryWithObjectsAndKeys:(id)object,(id)key,...,nil;//最常用的方法
//利用(键值)数组创建dictionary
+ (NSDictionary *)dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray *)keys;
//字典的基本用法
- (NSUInteger)count;//字典的键值对数
- (BOOL)isEqualToDictionary:(NSDictonary *)dict;
- (void)writeToFile:(NSString *)path atomically:(BOOL)YES/NO;//字典写入文件xml
- (id)dictionaryWithContentsOfFile:(NSString *)path;//从文件中读取内容
//访问key和value
- (id)objectForKey:(id)akey;
- (NSArray *)allKeys;//无序,返回所有的key
- (NSArray *)allValues;//返回所有object
- (NSArray *)objectsForKeys:(NSArray *)aKeys notFoundMaker:(id)marker;//返回对应akey的value,如果没有对应的value用marker代替
//遍历字典
for(id key in dict)//快速遍历字典dict的所有key
//迭代器遍历
- (NSEnumerator *)keyEnumerator;//key的迭代器
- (NSEnumerator *)objectEnumerator;//vlaue迭代器
- (NSEnumerator *)nextObject;//迭代下一个
//block遍历
- (void)enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){};
7>NSValue
包装OC对象
//创建
initWithPoint/Int/Char/...;
char[] @encode(type_name);//type_name(类型名)生成类型描述字符串
+ (NSValue *)value:(const void*)value withObjCType:(const char*)ctype;//包装数据的地址value,数据类型描述字符串是ctype,封包
- (void)getValue:(NSValue);//从取出包装好的数据当中取出数据,解包
8>NSNull(单例)
除了父类的方法只有一个静态方法
+ (NSNull *)null;
9>NSDate;
+ (NSDate *)date;//返回当前时间
+ (NSDate *)dateWithTimeIntervalSinceNow:(NSTimeInterval)time;//time秒之后,NSTimeInterval代表秒
+ (NSDate *)dateWithTimeIntervalSince1970:(NSTimeInterval)time;//1970年之后time秒,格林治时间
+ (NSDate *)distantFuture;//随机返回一个遥远的未来
+ (NSDate *)distantPast;//随机返回一个遥远的过去时间
//去时间
- (NSDate *)timeIntervalSince1970;//返回1970到现在走过的ms数
- (NSDate *)timeIntervalSinceDate:(NSDate *)date;
- (NSDate *)earlierDate:(NSDate *)date;//返回比较早的时间
- (NSDate *)laterDate:(NSDate *)date;//返回较晚的时间
//利用日期格式化器格式化日期
NSDateFormatter//日期格式化器
NSDateFormatter  *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd hh:mm:ss";
- (NSDate *)stringFromDate:(NSDate *)date;
- (NSDate *)dateFromString:(NSString *);//返回格林治时间


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值