一、Foundation框架常用结构体NSRange\CGRange、NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 的使用

1.  基本使用:

  //NSRange的使用
NSRange r1 = NSMakeRange(, ); //第一个参数为.location 第二个参数为.length NSString *str = @"学习OC"; NSRange range = [str rangeOfString:@"学习"]; //查找某个字符串在str字符串中的位置和长度 NSLog(@"loc = %ld, len = %ld",range.location, range.length); NSRange range1 = [str rangeOfString:@"找不到"]; //查找某个字符串在str字符串中的位置和长度 NSLog(@"loc = %d, len = %ld",range1.location, range1.length); //如果找不到,location 的返回值为-1,要用%d输出location 的值才会有负号,默认的%ld是没有符号 //CGPoint的使用
CGPoint point1 = NSMakePoint(, );
NSPoint point2 = CGPointMake(, ); //平常经常使用这种方法定义一个CGPoint 对象 //NSSzie的使用
NSSize size1 = CGSizeMake(, );
CGSize size2 = NSMakeSize(, ); //CGRect 的使用
CGRect rect1 = CGRectMake(, , , );
CGRect rect2 = {point1, size1}; //打印结构体的方法
NSString *s = NSStringFromPoint(point1);
NSLog(@"%@",s); NSString *s1 = NSStringFromRect(rect1);
NSLog(@"%@",s1);

2. 相关的其他方法

//判断结构体NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 包含的值是否相同的方法
CGPointEqualToPoint(point1, point2);
CGRectEqualToRect(rect1, rect2);
CGRectEqualToRect(rect1, rect2); //判断某个rect是否包含某个点,必须引用框架CoreGraphic.framework,这样才能调用 CGRectContainsPoint方法
BOOL b1 = CGRectContainsPoint(rect1, point1);
NSLog(@"%d",b1);
return ;

二、Foundation框架常用类

1.NSString

    //创建字符串
NSString *s1 = @"test";
NSString *s2 = [[NSString alloc]initWithFormat:@"test is %c",'c']; //此方法可以将c语言字符串转化为OC字符串
NSString *s3 = [[NSString alloc]initWithUTF8String:"name"]; //OC字符串转化为C语言字符串
const char *cs = [s3 UTF8String]; NSString *s4 = [[NSString alloc] initWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
[NSString stringWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil]; NSURL *url = [[NSURL alloc]initWithString:@"file:///Users/lpmac/Desktop/my.text"];
//类方法
[NSURL URLWithString:@"file:///Users/lpmac/Desktop/my.text"]; NSString *s5 = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
//类方法
[NSString stringWithContentsOfFile:@"file:///Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",s5);

2.NSMutableString的使用(动态字符串)

    NSMutableString * mutableString1 = [NSMutableString stringWithFormat:@"test"];
//拼接字符串
[mutableString1 appendString:@"append str"]; //删除
NSRange range = [mutableString1 rangeOfString:@"test"];
[mutableString1 deleteCharactersInRange:range];
NSLog(@"%@",mutableString1);

3.NSArray 和 NSMutableArray

    //数组的创建
NSArray *array = [NSArray arrayWithObject:@"test"];
NSArray *array1 = [NSArray arrayWithObjects:@"test1",@"test2",@"test2",nil];
NSArray *array2 = @[@"test1",@"test2",@"test2"]; //提倡快速写法 //数组访问
[array1 objectAtIndex:];
array1[]; //提倡 //数组的遍历
for (int i=; i<array.count; i++) {
NSLog(@"%@",array[i]);
}
    //快速遍历
for (id obj in array2) { NSUInteger loc = [array2 indexOfObject:obj];
NSLog(@"%@,%ld",obj,loc); } [array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@,%ld",obj,idx);
if (idx == ) {
*stop = YES;
}
}];

NSMutableArray 是动态数组不可使用语法@[] 来初始化

从头开始-07.Foundation框架常用结构体的更多相关文章

  1. 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写

    一.V4L2框架主要结构体分析 V4L2(video for linux version 2),是内核中视频设备的驱动框架,为上层访问视频设备提供统一接口. V4L2整体框架如下图: 图中主要包括两层 ...

  2. 13.Object-C--浅谈Foundation框架常用的结构体

    ------- android培训.iOS培训.期待与您交流! ---------- 昨天学习了Foundation框架中常用的结构体,下面我简单的总结一下,如果错误麻烦请留言指正,谢谢! Found ...

  3. iOS Foundation框架简介 -1.常用结构体的用法和输出

    1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...

  4. iOS Foundation框架 -1.常用结构体的用法和输出

    1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...

  5. [OC Foundation框架 - 1] 常用结构体

    底层封装是使用了typedef定义的结构体 typedef struct _NSString{ xxx xxx } NSString;   1. NSRange 结构体 #注意结构体不是对象 3种定义 ...

  6. Foudation框架之一些常用结构体和常用类

    表示范围作用的结构体:NSRange:       有三种方式创建新的NSRange: 1.NSRange range:            range.location = 17;         ...

  7. 八、Foundation -常用结构体

    一.NSRange 在foundation/NSRange.h中对NSRange的定义 typedef struct _NSRange{ NSUInteger location; NSUInteger ...

  8. Objective-C:Foundation框架-常用类-NSString全解

    Foundation框架中常用的类有字符串.集合.字典等,这里介绍字符串NSString.本文分别介绍了NSString的创建.从文件里读取NSString字符串.通过函数改变外部的NSString变 ...

  9. Objective-C:Foundation框架-常用类-NSValue

    NSNumber是NSValue的子类,前者只能包装数字,后者可以包装任意值.NSArray.NSDictionary只能存储OC对象,不能存储结构体.因此,如果想要在NSArray.NSDictio ...

随机推荐

  1. 购买DigtalOcean VPS 以及 连接Linux

    1.DigtalOcean简介 digitalocean是一家成立于2012年的总部设置在纽约的云主机商家,眼下在荷兰的阿姆斯特丹(AMS1.AMS2).美国的纽约(NYC1.NYC2)和旧金山(SF ...

  2. 理解java设计模式之观察者模式

    在生活实际中,我们经常会遇到关注一个事物数据变化的情况,例如生活中的温度记录仪,当温度变化时,我们观察它温度变化的曲线,温度记录日志等.对于这一类问题,很接近java设计模式里面的“观察者模式”,它适 ...

  3. angular在ie8下的一个bug

    昨天拿项目在ie8下测试,发现不少bug,其中有一个bug让我很不解,报了一个thead开头的bug,因为已经切回到linux下了,我就不报具体是什么bug了,鼓捣了半天,发现引用angular的应用 ...

  4. c# 使用oledb 写入导出excel设置单元格为成数字格式 设置了不起作用

    使用oledb 导出过程中,如果excel安装版本低于2010,无论怎么设置.导出的都是文本格式. 用代码-使用数据-分列,解决

  5. HDU 1073 - Online Judge

    模拟评测机判断答案 先判断有没有不一样的 有的话再提取出 有效子列 看看有没有错的 #include <iostream> #include <cstdio> #include ...

  6. zoj 1200 Mining

    这道题被划到了动态规划里面去了,结果就是一道模拟题,懒了一点,直接用stl的优先队列,重载了一下运算符,写的时候保证只能一个在采,因为如果需要的采的次数比可以生产的次数少,那么生产的次数等于需要采的次 ...

  7. CSS圆角样式

    CSS圆角: /*纯css,设置图片圆角*/ #top2 { margin-left:20px; padding:10px; width:600px; height:300px; border: 5p ...

  8. spring:ContextLoaderListener接口

    在启动Web容器时,自动装配Spring applicationContext.xml的配置信息. 因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启 ...

  9. php 日期 - 获取当月最后一天

    /** * 日期-获取当月最后一天 * @return int */ public function get_lastday() { if($this->month==2) { $lastday ...

  10. FMDB将对象放进数据库[二](使用runtime)

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...