一 常用类

NSRange 范围,NSPoint  点,NSSize /CSSize 大小,CGRect

1 NSRange

1)NSRange是一种C语言结构用来帮助描述一系列的条款,包括一个起点位置和一个计数方法。可以对其指定起始位置以及所需的元素数量。

2)NSRange的结构如下图所示:

location是在行列中的起始位置(基于零点),而length是行列中的条目个数。NSUInteger只是单纯的一个无符号的值,它支持32位和64位系统。

3) 例子

NSString *param= @"";
NSRange ns = NSMakeRange(, ) ;
NSLog (@"subStr=%@", [param substringWithRange:ns]);

输出结果为:  subStr=34567

二 NSString

1. 创建字符串

NSString *string= @"hello”;
NSString *string = [[NSString alloc] initWithString: @"hello"];

2.拼接字符串

 float f = 2.4;
NSString *floatStr =[NSString stringWithFormat:@"%.1f" , f];
NSLog(@"%@", floatStr ); double d = 68.9999;
NSString *doubleStr = [NSString stringWithFormat:@"%.4f" , d ];
NSLog(@"%@" , doubleStr ); char c = 'c';
NSString *charStr = [NSString stringWithFormat:@"%c" , c];
NSLog(@"char=%@" , charStr );

第2行:转换单精度浮点数为字符串。

第6行:转换双精度浮点数为字符串。

第10行:转换字符为字符串。

3.将字符串转化成基本数据类型

使用字符串的 floatValue, doubleValue, initValue将字符串转换为基本数据类型。

 NSString *str = @"";
int i= [str intValue];

4. 将字符串中的字母转换成大写

NSString *str = @"china";
NSString *str1 =[str uppercaseString];

5.将字符串中的字母转换成小写

NSString *str1 = "CHINA";
NSString *str2 = [str1 lowercaseString];

6.将字符串的首字母转成大写,其余转成小写。

NSString *str = @"CHINA";
NSString *str2 = [str capitalizedString];

三 数组

数组分为可变数组(NSMutableArray)和不可变数组(NSArray)。

数组只能存放OC对象,不能放基本数据类型,可以在基本数据类型前面,加上@。

1.不可变数组

1. 不可变数组的创建

2. 数组派生出新的数组

3.数组的遍历

 //第一种遍历:普通for循环
long int count = [array count];
for (int i = ; i < count; i++) {
NSLog(@"1遍历array: %zi-->%@",i,[array objectAtIndex:i]);
} //第二种遍历:快速for循环,需要有外变量i
int i = ;
for (id obj in array) {
NSLog(@"2遍历array:%zi-->%@",i,[array objectAtIndex:i]);
i++;
}

2.可变数组

定义:创建一个可变数组,并且给他配置空间,空间存满会自动扩充空间。

注意:@[]只能创建不变数组。

四 字典

1. 不可变字典

1)初始化

NSDictionary *dic = [NSDictionary dictionaryWithObject: @"value" forKey:@"key" ];

NSDictionary *dic2 = [NSDictionary dictionaryWithObjects: @[@"v1" , @"v2" , @"v3"] forKeys: @[@"k1" , @"k2" , @"k3"]];

NSDictionary *dic3 = @{@"key1" : @"value2", @"key2" : @"value2"};

2. 可变字典

五 集合总结:

1 NSString / NSMutableString。

2 NSArray / NSMutableArray。

1) 有序

2) 快速创建(相对于不可变数组): @[@"a" , @"b" , @"c"]

3) 快速访问: 数组名[i]

3 NSSet。

1) 无序

4 NSDictionary / NSMutableDictionary。

1)无序

2)快速创建: @[ key: value, key : value]

3)快速访问: 字典名[key]

5 NSSet 和 NSArray 的对比:

1) 共同点:

都是集合,都能存放多个OC对象。

都能存放OC对象,但是不能存放非OC的对象类型(基本数据类型,结构体,枚举)。

本身都不可变,都有可变的自雷。

2) 不同点:

NSArray是有序的, NSSet是无序的。

.有序的角度: 数组有序, 字典和集合都是无序的
.能否通过下标来访问: 数组可以, 字典和集合都不可以
.元素是否可以重复: 数组可以重复, 字典中key值不可以重复,value值可以重复, 集合中元素不可以重复
.打印的样式: 数组: () 字典: {} 集合:  {()}

IOS基础之 (八) Foundation框架的更多相关文章

  1. IOS基础之 (九) Foundation框架

    一NSNumber 类型转换 NSNumber 把基本数据类型包装成一个对象类型.NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue. @20 等价于 [NSNumber ...

  2. 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary

    int main(int argc, const char * argv[]) { @autoreleasepool { //字典, 存储的内存不是连续的 用key和value进行对应(键值) //k ...

  3. iOS 基础函数解析 - Foundation Functions Reference

    iOS 基础函数解析 - Foundation Functions Reference 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...

  4. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

  5. Foundation框架-NSString和NSMutableString

    可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式  2.3 从文件中 ...

  6. iOS开发系列—Objective-C之Foundation框架

    概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底 ...

  7. iOS - OC Foundation 框架

    前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...

  8. iOS - Swift Foundation 框架

    前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...

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

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

随机推荐

  1. 给H5页面添加百分比的进度条,精确度高

    进度条样式地址:http://sandbox.runjs.cn/show/6vxbxjrf SVG圆环样式地址:http://sandbox.runjs.cn/show/3ho1qpe9 原理:由于H ...

  2. 浅析CSS——元素重叠及position定位的z-index顺序

    多次在项目中遇到html页面元素的非期待重叠错误,多数还是position定位情况下z-index的问题.其实每次解决类似问题思路大致都是一样的,说到底还是对z-index的理解比较模糊,可以解决问题 ...

  3. 万向节死锁 gimbal lock

    ,如下图一,把灰色箭头想象成是一架飞机,红,绿蓝三个圈看作是三个外围控制器,外圈带动所有里圈运动,里圈的运动不影响外圈. 1,首先,绕Y轴旋转(旋转绿圈),来确定前进的方向.这时红圈与蓝圈都跟着旋转. ...

  4. 项目移植将eclipse里面的项目移植到intellij idea里面

    怎么关联多个库 .  A B C D,A依赖BC,D依赖A,怎么搞? 注意: as和idea里面,project是工作空间的意思,这里面model才是项目. 打开主项目D 打开已经存在的model 导 ...

  5. [CareerCup] 9.7 Paint Fill 填充

    9.7 Implement the "paint fill" function that one might see on many image editing programs. ...

  6. 20135328信息安全系统设计基础第一周学习总结(Linux应用)

    学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Linux中用户管理命令/ ...

  7. Jenkins进阶系列之——03parameterized-trigger插件

    说明:这个插件可以根据已经完成构建的结果,触发新Job或者传递参数. 官方说明:Parameterized Trigger Plugin 安装步骤: 系统管理→管理插件→可选插件→Build Trig ...

  8. 成都普华永道税务开发的offer

    首先这是一个.net税务开发的offer,我是做开发的. 有没有人在成都普华永道的,最近收到普华永道的offer,如果有的话请联系我.想知道里面的情况.最想知道里面的加班情况,薪资还是有点诱惑的.毕竟 ...

  9. 第三十五课:Ajax详解

    一个完整的Ajax请求: var xhr = new (self.XMLHttpRequest || ActiveXObject)("Microsoft.XMLHTTP");   ...

  10. 百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例 [源码下载]

    相关说明 1. 界面查看: 吐槽贴:百度地图 api 封装 的实用功能 [源码下载] 2. 功能说明: 百度地图整合功能分享修正版[ZMap.js] 实例源码! ZMap.js 本类方法功能大多使用 ...