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

------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表示   该范围内所包含的个数
具体使用以及表示方式如下:

//使用NSRange
void 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定义

具体使用如下:

//使用NSPoint
void 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类型的。

//使用NSSize
void 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的一个结构体。

//使用NSRect
void 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值