黑马程序员——OCFoundation框架-9:计算某个文件夹下的代码行数
2015-04-17 15:20
495 查看
————————java培训、Andoroid培训、IOS培训、.Net培训、期待与您交流!————————
Array OC数组
OC数组只能存放OC对象,不能存放非OC对象
OC数组不能存放空值
计算某个文件夹下的代码行数
考察NSString,NSArray和NSFileManager的使用
Array OC数组
OC数组只能存放OC对象,不能存放非OC对象
OC数组不能存放空值
//Array创建 NSArray *array = [NSArray arrayWithObjects:@"jack", @"rose",nil]; NSArray *array1 = [NSArray arrayWithObject:@"jack"]; //快速创建数组对象 NSArray *array2 = @[@"jack",@"rose",@"take"]; //统计元素个数 [array count]; //访问指定元素 array[1]; [array objectAtIndex:1]; /OC数组遍历 Person *p = [[Person alloc] init]; NSArray *array = @[p,@"rose",@"jack"]; //id obj 代表数组中的元素 for(id obj in array) { NSUInteger i=[array indexOfObject:obj]; NSLog(@"%ld-%@",i,obj); } //第2种方法 [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { //每遍历一个元素,就会调用一次block //并且当前元素和索引位置当作参数传给block NSLog(@"%ld-%@",idx,obj); }]; //引申设计 void ^myblock(id,NSUInteger,BOOL *)=^(id obj,NSUInteger idx,BOOL *stop) { NSLog(@"%ld-%@",idx,obj); if(idx==2) { *stop=YES; } }; for(int i=0;i<array.count;i++) { BOOL isStop=NO; id obj=array[i]; myblock(obj,i,&isStop); if(isStop) { break; } }
计算某个文件夹下的代码行数
考察NSString,NSArray和NSFileManager的使用
NSUInteger codeLineCount(NSString *path) { //1.获得文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; //2判断path是文件路径还是文件夹 BOOL dir = NO;//标记是否为文件夹 BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir]; //3判断路径是否存在 if(!exist) { NSLog(@"文件路径不存在"); return 0; } if(dir)//是文件夹 { NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil]; int count=0; for(NSString *filename in array) { NSString *fullpath = [NSString stringWithFormat:@"%@/%@",path,filename]; count += codeLineCount(fullpath); } return count; } else //是文件 { //4判断文件拓展名 NSString *extension = [[path pathExtension] lowercaseString ]; if(!([extension isEqualToString:@"m"]||[extension isEqualToString:@"h"] ||[extension isEqualToString:@"c"])) { return 0; } NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //分局指定内容分割字符串成n块 NSArray *array = [content componentsSeparatedByString:@"\n"]; /* int i=0; for(NSString *line in array) { NSLog(@"%d-%@",i,line); i++; } */ NSRange range= [path rangeOfString:@"/Users/tjl/Desktop/2015"]; NSString *newStr = [path stringByReplacingCharactersInRange:range withString:@""]; NSLog(@"%@-%ld",newStr,array.count); return array.count; } } int main() { NSUInteger count=codeLineCount(@"/Users/tjl/Desktop/2015"); NSLog(@"%ld",count); return 0; }
相关文章推荐
- 《Objective-c》Foundation框架 -(练习:计算整个文件夹的代码行数)
- 黑马程序员 用OC实现的一个计算文件夹下代码行数的小程序
- python3 计算文件夹中所有py文件里面代码行数,注释行数,空行数
- PyQt5学习随笔01--计算一个文件夹里我们码的代码行数&&PyQt的多线程通信
- [原创]Python小工具 —— 计算 文件 或 文件夹及其所有子文件夹中所有文件 的 代码行数
- [黑马程序员]16[Foundation框架]学习应用,计算学习代码量
- 黑马程序员--ios基础--oc-foundation--NSString,NSArray与计算代码行数的练习
- 黑马程序员_OC基础14_计算代码行数Demo
- Objective-C 计算文件夹里的代码行数
- 黑马程序员---Foundation常用类练习(计算文件代码行数)
- 黑马程序员————IOS学习笔记 第11篇 经典示例计算代码行数
- 计算整个文件夹的代码行数
- 计算编写代码行数
- 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。System.Threading.ThreadAbortException
- 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值
- oc 计算代码行数
- 黑马程序员-根据本地地址计算文本中有多少行的代码
- Asp.Net异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法
- 经典例题——计算代码行数(OC)