Fundation构架
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、Foundation框架简介
1、Foundation框架的作用
1>开发oc、ios、Mac程序必备的框架,是其它所有IOS框架的基础
2>此框架中包含了很多常用的API(应用编程接口)
3>框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可
2. Foundation框架的主头文件名称就是Foundation.h
3. Foundation框架包含了很多数据类型(结构体,枚举)和类
Foundation框架中常用的类有:
NSString——字符串;NSArray——数组;NSNumber——数字;NSDate——日期
NSData——数据;NSDictionary——字典
二、Foundation框架中的结构体
Foundation框架中的结构体(NSRange,NSPoint(CGPoint),NSSize(CGSize),NSRect (CGRect))
1、将结构体转换为字符串:
CGPoint P1=NSMakePoint(10,10);
NSString*str =NSStringFromPoint(P1); //将P1这个结构体转成字符串
NSLog(@"%@",str); // 输出结果为{10,10}
2、结构体的其它用法
1. 坐标原点的表示方法
1> CGPointMake(0,0)
2> CGPoint Zero
2. 判断两个点是否相同(BOOL类型)
CGPoint EqualToPoint((CGPoint point1),(CGPoint point2))
//可以将 CGPoint换成CGSize或者 CGRect
3. 判断一个点是否在一个范围内
CGRectContainsPoint((CGRect rect),(CGPoint point))
使用这些函数的前提是CoreGraphics框架
三、NSSet和NSMutableset(无序的)
1. NSSet(不可变)
创建
NSSet *s=[NSSet set]; //空的set
NSSet *s2=[NSSet SetWithObect:@"jack",@"rose",nil];
随机拿出一个对象
NSString *str=[s2 anyobject];
2. NSMutableSet(子类)(可变)
创建
NSMutableSet *s=[NSMutableSet set]
添加元素
[s addobject:"@hake"]
删除元素
[s removeAllobject] //删除所有元素
[s removeAllobject::"@hake"] //删除指定元素
四、字典NSDictionary和NSMutableDictionary(无序的)
1. NSDictionary(不可变)
创建
NSDictionary*dict=[ NSDictionaryWithObject:@"jack"for key:@"name"];
//一对键值,根据name可以找到jack
字典就是通过key(索引)----------->value(值)
字典存储的东西都是键值对
访问name对应的值:[dict objectForkey:@"name"];
NSArray*keys=@[@"name",@"address"];
NSArray*objects=@[@"jack",@" 北京"];
NSDictionary*dict=[NSDictionary DictionaryWithObject :objectsfor key:keys];
//根据keys找objects
快速创建
NSDictionary*dict=@{@"name":@"jack",@"address":" 北京"};
id obj=dict[@"name"];//拿出name对应的值
遍历
NSDictionary*dict=@{@"name":@"jack",@@"address":" 北京"};
1> for循环
NSString *keys=[dict allkeys];
for(int i=0;i
{
NSString *key=keys[i];
NSString *object=dict[key];
NSLog(@"%@=%@",key,object);
}
2>block方法
[dict enumeratekeysAndobjectsUsingBlock:
^(id key,id obj,BOOL*stop){NSLog(@"%@=%@",key,object);}]
2. NSMutableDictionary(可变的)
创建
NSMutableDictionary*dict=[ NSMutableDictionary dictionary]; //空字典
添加键值对
[dict setobject:@"jack" for key :@"name"];
[dict setobject:@"rose" for key :@"name"]; //会将"jack"覆盖
删除键值对
[dict removeobjectForkey:(id)]
NSMutableDictionary 不能使用快速创建
五、NSNumber和NSvalue
把基本数据类型包装成OC 对象:NSNumber*num=[NSNumber numberWithInt:10]
NSDictionary*dict=@{@"name":@"jack",@"age":" num"};
NSNumber*num2=dict[@"age"];
//取出的age还是OC对象
int a=[num2 intvalue];//将num2(OC对象)转为基本数据类型
@20 //将基本数据类型快速转化成OC对象(@"20")
@"A":NSString对象
@'A' 将字符包装成一个NSNumber对象
int age=100
@(age)//将age包装成NSNumber对象
将结构体包装成OC 对象
CGPoint =CGPointMake(10,10);// 结构体
NSvalue value=[NSvalue valueWithPoint :p]//把结构体转为OC 对象
NSArray *array=@[value];//把对象放进数组
[value pointValue];//把value转为对应的结构体
NSnumber之所以能将基本数据类型包装成OC对象,是因为它继承了NSvalue
六、NSDate
创建一个时间对象
NSDate *date=[NSDate date];
NSLog(@"%@",date);//打印出的时间是0时区的时间
NSDate *date=[NSDate dateWithTimeInterval:5 sinceDate:date];//date2比date晚5秒
NSTimeIntelval seconds={date timeInterval since 1970};// 从1970开始走过的秒数
日期格式化类(date转string)
1> NSDate date=[NSDate date];
NSDateFormatter *formatter=[[NSDateFormatter alloc]init]
formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";
NSString *str=[formatter stringFormDate:date];
NSLog(@"%@"str);//y年M月d日 m分s秒H(24小时制)h(12小时制)
2> NSString转NSDate
NSString *time=@"2011/09/10 18:56";
NSDateFormatter *formatter=@"yyyy-MM-dd HH:mm:ss";
NSDate date=[formatter dateFromString:time];
NSLog(@"%@",date);
Fundation构架相关推荐
- 【iOS开发】从Cocoa框架说开去--Fundation框架系列
[Cocoa简介] Cocoa是苹果公司为Mac OS X所创建的原生面向对象API 是Mac OS X上五大API之一.(其他四个:Carbon POSIX X11 Java)它是苹果的面向对象开发 ...
- TVM设计与构架构建
TVM设计与构架构建 本文档适用于希望了解TVM体系结构和/或在项目上进行积极开发的开发人员.该页面的组织如下: • 实例编译流程Example Compilation Flow,描述TVM把一个模型 ...
- 如何定制一款12306抢票浏览器——构架
快春节了,火车票一票难求.虽然黄牛市场冷淡了,但是互联网"娱乐界"却越来越闹腾了.先是猎豹等浏览器推出抢票专版(插件),然后是铁道部约谈金山,之后流传工信部叫停抢票插件,之后再是工 ...
- 系统技术方案 系统构架_构架系统时应注意的事项
系统技术方案 系统构架 by Ayelet Sachto 通过Ayelet Sachto 架构系统时要记住的6件事 (6 Things to keep in mind when architectin ...
- 麒麟处理器是基于arm的吗_麒麟芯片是基于ARM构架,如果得不到授权华为还能活吗?...
跟其他的国产公司相比,华为最大的特点就是拥有自研的一些技术,比如华为的麒麟芯片,毕竟友商OPPO.小米都在使用高通的骁龙,他们没有足够的能力研发强大的芯片,单单在这一方面华为人就已经足够自豪. 不过最 ...
- mysql构架,索引,视图,查询语句
mysql构架: connection pool:因为单进程多线程,所以需要一个线程池接收请求提供并发,线程重用,还能完成认证 SQL interface:接收并分析SQL语句 Parser:分析器, ...
- 第二讲:Android系统构架分析和应用程序目录结构分析
2019独角兽企业重金招聘Python工程师标准>>> 本讲内容: Android系统构架简介 Android应用程序结构分析 点这里下载:Android学习指南第二讲源代码 一.A ...
- 系统架构师具备的能力和构架师自我培养过程
2019独角兽企业重金招聘Python工程师标准>>> 系统架构师具备的能力 一般来讲,系统架构师应该拥有以下几方面的能力: 1:具备 8 年以上软件行业工作经验: 2:具备 4 年 ...
- 软件构架实践读书笔记二
什么是软件构架 1.构架定义了元素 2.系统可能而且确实由多个结构组成 3.具有软件的每个计算系统都有一个软件构架 4.某个元素的行为就是构架的内容 构架是一个高层的.系统的总体结构.构架的内容就是构 ...
最新文章
- Mac下导出chrome插件
- 玩点深入的:Java 虚拟机内存结构及编码实战
- 服务器不显示磁盘柜,磁盘柜与服务器的关系
- 投影与三维视觉——本征矩阵和基础矩阵
- hbase java框架_Hadoop学习笔记—15.HBase框架学习(基础实践篇)
- java.sql.SQLException: ORA-00923: FROM keyword not
- bentley 二次开发_Bentley的基本概念
- 我们和计算机系的老教授聊了聊TCP优化与产学矛盾
- ArrayList与LinkedList
- 数据结构比较型排序算法分析及选择
- Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据全量索引构建
- 2021年中国乙醛市场趋势报告、技术动态创新及2027年市场预测
- 软件开发过程中各种文档的作用
- Neo4j简单构建知识图谱实例
- Linux网络命令之 `brctl`
- 新建linux efi分区,EFI系统分区是什么?单独创建EFI分区的图文教程
- NXP JN5169 ZigBee 3.0开发环境搭建
- python求最小公倍数_Python 最小公倍数算法
- 航班延误来领钱,信用卡航班延误险最全攻略(2018年版)
- 计算机专业考研英语二国家线多少分,考研英语二国家线多少,2019年考研英语二国家线?...