IOS基础之 (八) Foundation框架
一 常用类
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框架的更多相关文章
- IOS基础之 (九) Foundation框架
一NSNumber 类型转换 NSNumber 把基本数据类型包装成一个对象类型.NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue. @20 等价于 [NSNumber ...
- 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary
int main(int argc, const char * argv[]) { @autoreleasepool { //字典, 存储的内存不是连续的 用key和value进行对应(键值) //k ...
- iOS 基础函数解析 - Foundation Functions Reference
iOS 基础函数解析 - Foundation Functions Reference 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...
- Foundation框架-NSString和NSMutableString
可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式 2.3 从文件中 ...
- iOS开发系列—Objective-C之Foundation框架
概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底 ...
- iOS - OC Foundation 框架
前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...
- iOS - Swift Foundation 框架
前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...
- iOS Foundation框架简介 -1.常用结构体的用法和输出
1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...
随机推荐
- Spring中使用Quartz
package com.ncs.hj; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; ...
- 怎么写针对IE9的CSS
(自己亲自试过有用)针对IE9的CSS只需在相应CSS代码加入只有IE9识别的 \9\0.具体代码如下: .div{ background-color:#0f0\9\0;/* ie9 */ } 其他浏 ...
- oracle学习之表空间
一.oracle当中的dual表 注意:sql语句一定要有一个 : 结尾,不然会报错. Oracle数据库内种特殊表DualDual表Oracle实际存表任何用户均读取用没目标表SelectDual表 ...
- 神奇的main方法详解
main函数的详解: public : 公共的. 权限是最大,在任何情况下都可以访问. 原因: 为了保证让jvm在任何情况下都可以访问到main方法. static: 静态 ...
- Linux内核分析——期末总结
Linux内核学习总结 首先非常感谢网易云课堂这个平台,让我能够在课下学习,课上加强,体会翻转课堂的乐趣.孟宁老师的课程循序渐进,虽然偶尔我学习地不是很透彻,但能够在后续的课程中进一步巩固学习,更加深 ...
- git的简介,安装以及使用
1git的简介 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 2Linus一直痛恨的CVS及SVN都是集中式的版本控制系 ...
- WPF Command Binding
<Window x:Class="WpfTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ...
- 有四中方法可以实现PHP的伪静态,你造吗?
说起伪静态的实现方案,你是不是很爽快的回答"简单,配置下apache的重写规则就行了嘛" 但是你有没有发现这种情况,你最近弄了很多新功能,每天上几个新功能,每天都有好多伪静态配置, ...
- VS 2010配置Qt 4.8.5
由于早上偶然的一个念想,今天的宝贵时光就奉献给了Qt的安装及其和VS 2010的配置上了. 说实话,开始时真的查找了资料,包括博客.文库.知道等等,作者们写得都很全面,细致. 但自己动手尝试就是错误百 ...
- 网页爬虫--scrapy进阶
本篇将谈一些scrapy的进阶内容,帮助大家能更熟悉这个框架. 1. 站点选取 现在的大网站基本除了pc端都会有移动端,所以需要先确定爬哪个. 比如爬新浪微博,有以下几个选择: www.weibo.c ...