黑马程序员——Foundation框架——常用结构体以及NSString相关

来源:互联网 发布:知乎沙发挑选 编辑:程序博客网 时间:2024/05/16 06:47

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

今天开始复习新的内容,IOS开发中常用的Foundation框架相关内容。

一、Foundation框架中常用的结构体

复习顺序还是按照学习笔记,首先是NSRange。

1.NSRange这个结构体通常用来表示范围:

//定义typedef struct _NSRange {<span style="white-space:pre"></span>NSUInteger location;<span style="white-space:pre"></span>NSUInteger length;} NSRange; location表示 该范围的起始位置length表示   该范围内所包含的个数
具体使用以及表示方式如下:

//使用NSRangevoid range1(){        //定义一个NSRange结构体    NSRange range = NSMakeRange(8, 10);    NSLog(@"Location: %zi", range.location);    NSLog(@"Length: %zi", range.length);        //另一种方便输出方式,使用NSStringFromRange方法    NSString *str = NSStringFromRange(range);    NSLog(@"%@", str);};


2.NSPoint (CGPoint)  这个结构体用来表示二维平面中的坐标,NSPoint是对CGPoint的一个typedef定义

具体使用如下:

//使用NSPointvoid point1(){        //定义一个NSPoint结构体    NSPoint point;    point.x = 1440;    point.y = 900;        //更多定义方式    point = NSMakePoint(1440, 900);    point = CGPointMake(1440, 900);        //另一种方便输出方式,使用NSStringFromPoint方法    NSString *str = NSStringFromPoint(point);    NSLog(@"%@", str);};


3.NSSize (CGSize) 这个结构体用来表示元素的大小尺寸。其中值得注意的是两个参数虽然源码中名称定义为Float但是实际上是double类型的。

//使用NSSizevoid size1(){        //定义一个NSSize结构体    NSSize size;    size.width = 95.3;    size.height = 3.45;        //更多定义方式    size = NSMakeSize(34.1, 124.6);    size = CGSizeMake(31.1, 14.5);        //另一种方便输出方式,使用NSStringFromPoint方法    NSString *str = NSStringFromSize(size);    NSLog(@"%@", str);    };


4.NSRect (CGRect) 这个结构体用来综合描述一个元素的二维坐标和大小尺寸。 是结合了Point和Size的一个结构体。

//使用NSRectvoid rect1(){        NSRect rect;    rect.origin.x = 1440;    rect.origin.y = 900;    rect.size.height = 100;    rect.size.width = 200;        //快速创建    rect = NSMakeRect( 1440, 900, 200, 70);        //另一种方便输出方式,使用NSStringFromPoint方法    NSString *str = NSStringFromRect(rect);    NSLog(@"%@", str);};



一、Foundation框架中常用的类

1.NSString的创建

    NSString *str = @"This is a String!";    NSString *str1 = [[NSString alloc] initWithFormat:@"This price is %d!",400];


2.NSString的大小写、基本数据类型的转换
#pragma mark NSString大小写处理方法void string2(){    NSString *str = @"This is OC";    NSString *numString = @"3306";    NSString *lstr = @"This我 3306字符";        //转换成大写    NSLog(@"%@",[str uppercaseString]);//THIS IS OC    //转换成小写    NSLog(@"%@",[str lowercaseString]);//this is oc    //首字母大写,其余小写    NSLog(@"%@",[str capitalizedString]);//This Is Oc    //将字符串转换为int类型    [numString intValue];//3306    //字符串长度    [lstr length];//12};

3.NSString的对比方法

#pragma mark NSString对比方法void String3(){        //对比两个字符串的 内容是否一样    BOOL flag = [@"Elors" isEqualToString:@"elors"];        //对比字符串    NSComparisonResult flag1= [@"Elors" compare:@"elors"];    NSComparisonResult flag2= [@"Elors" caseInsensitiveCompare:@"elors"];    if (flag2 == NSOrderedSame) {        NSLog(@"两个值相等");    }else if (flag2 == NSOrderedAscending){        NSLog(@"右边字符串 > 左边字符串");    }else if (flag2 == NSOrderedDescending){        NSLog(@"右边字符串 < 左边字符串");    }};

4.NSString的搜索方法

#pragma mark NSString搜索方法void String4(){        NSString *str = @"ElorsisaAshiKThss.txt";        //检测 是否以指定字符串 开头    BOOL flag = [str hasPrefix:@"El"];    //检测 是否以指定字符串 结尾    flag = [str hasSuffix:@".jpg"];    //检测 是否包含指定的字符串 (从头部搜索)    NSRange range = [str rangeOfString:@"s"];    //从尾部搜索    range = [str rangeOfString:@"s" options:NSBackwardsSearch];        NSLog(@"%@", NSStringFromRange(range));    };

5.NSString的截取方法

#pragma mark NSString截取方法void String5(){    NSString *str = @"1234567890";        //从指定位置截取字符串到尾部    NSString *substr = [str substringFromIndex: 5];    //从头部截取到指定位置(指定位置之前)    substr = [str substringToIndex:5];    //截取字符串,指定范围    substr = [str substringWithRange:NSMakeRange(0, 3)];    NSLog(@"%@", substr);        //切割字符串 类似于JavaScript中的split方法    NSString *s = @"123*456*789*0";    NSArray *array = [s componentsSeparatedByString:@"*"];    NSLog(@"%@", [array description]);    //取出NSArray中的某项    NSString *as = [array objectAtIndex:0];    };

今天的Foundation框架复习,常用结构体和NSString相关知识就复习到这。

这种知识的学习更多的是要实际去使用,多模拟一些实际的应用场景。编写一些方法来执行某些操作。

在这个过程中逐渐熟悉这些知识对以后的学习会更好。



0 0
原创粉丝点击