//NSString
NSString *str1=@"hello world";
NSRange range=[str1 rangeOfString:@"h"];
NSRange range1=NSMakeRange(0, 4);
NSString *str2 = [str1 substringWithRange:range1];
NSLog(@"%zi,%zi,%@", range.length, range.location, str2);
//1,0,hell
//CGPoint,CGSize,CGRect
CGPoint p1 = NSMakePoint(115, 10);
NSPoint p2 = CGPointMake(20, 20);
NSString *str1 = NSStringFromPoint(p1);
CGSize s1 = CGSizeMake(10, 20);
NSSize s2 = NSMakeSize(20, 13);
CGRect c1 = NSMakeRect(p1.x, p1.y, s1.width, s1.height);
CGRect c2 = {p1, s1};
CGPointZero; //原点
bool x = CGPointEqualToPoint(p1, p2);
bool x2 = CGRectContainsPoint(c1, CGPointZero);
NSLog(@"x=%g,y=%g,w=%g,h=%g",c1.origin.x, c1.origin.y, c1.size.width, c1.size.height);
NSLog(@"%@,%i",str1, x2);
//NSArray 快速添加;
NSArray *arr1 = @[@"jj", @"dadj"];
for (id a in arr1) {
NSUIntegerI = arr1[indexOfObejct:a;
NSLog(@"%@",a);
//每遍历到一个元素,就会调用一次block。
[arr1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@",obj);
}]; //*stop=YES; ==break
//求代码行数
NSUInteger codeFileLineCount(NSString *path) {
NSFileManager *mag = [NSFileManager defaultManager]; //文件管理权限
BOOL dir = NO;//标记是否为文件夹
int count = 0;
BOOL exist = [mag fileExistsAtPath:path isDirectory:&dir]; //是否存在
if (!exist)
return 0;
NSString *extension = [path pathExtension]; //扩展名
if (dir) {
NSArray *array = [mag contentsOfDirectoryAtPath:path error:nil];
for(NSString *filename in array) {
// codeFileLineCount([[path stringByAppendingString:@"/"] stringByAppendingString:filename])
//递归
count +=codeFileLineCount([NSString stringWithFormat:@"%@/%@",path,filename]);
}
return count;
}
else { //判断拓展名
if (![extension isEqualTo:@"c"]
&&![extension isEqualTo:@"m"]
&&![extension isEqualTo:@"h"]) {
return 0;
}
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *array = [content componentsSeparatedByString:@"\n"];
NSRange range = [path rangeOfString:@"/Users/pc/Documents/Ios_start_Xcode"];
NSString *newPath = [path stringByReplacingCharactersInRange:range withString:@""];
NSLog(@"%@的行数%zi",newPath,array.count);
return array.count;
}
}