------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构架相关推荐

  1. 【iOS开发】从Cocoa框架说开去--Fundation框架系列

    [Cocoa简介] Cocoa是苹果公司为Mac OS X所创建的原生面向对象API 是Mac OS X上五大API之一.(其他四个:Carbon POSIX X11 Java)它是苹果的面向对象开发 ...

  2. TVM设计与构架构建

    TVM设计与构架构建 本文档适用于希望了解TVM体系结构和/或在项目上进行积极开发的开发人员.该页面的组织如下: • 实例编译流程Example Compilation Flow,描述TVM把一个模型 ...

  3. 如何定制一款12306抢票浏览器——构架

    快春节了,火车票一票难求.虽然黄牛市场冷淡了,但是互联网"娱乐界"却越来越闹腾了.先是猎豹等浏览器推出抢票专版(插件),然后是铁道部约谈金山,之后流传工信部叫停抢票插件,之后再是工 ...

  4. 系统技术方案 系统构架_构架系统时应注意的事项

    系统技术方案 系统构架 by Ayelet Sachto 通过Ayelet Sachto 架构系统时要记住的6件事 (6 Things to keep in mind when architectin ...

  5. 麒麟处理器是基于arm的吗_麒麟芯片是基于ARM构架,如果得不到授权华为还能活吗?...

    跟其他的国产公司相比,华为最大的特点就是拥有自研的一些技术,比如华为的麒麟芯片,毕竟友商OPPO.小米都在使用高通的骁龙,他们没有足够的能力研发强大的芯片,单单在这一方面华为人就已经足够自豪. 不过最 ...

  6. mysql构架,索引,视图,查询语句

    mysql构架: connection pool:因为单进程多线程,所以需要一个线程池接收请求提供并发,线程重用,还能完成认证 SQL interface:接收并分析SQL语句 Parser:分析器, ...

  7. 第二讲:Android系统构架分析和应用程序目录结构分析

    2019独角兽企业重金招聘Python工程师标准>>> 本讲内容: Android系统构架简介 Android应用程序结构分析 点这里下载:Android学习指南第二讲源代码 一.A ...

  8. 系统架构师具备的能力和构架师自我培养过程

    2019独角兽企业重金招聘Python工程师标准>>> 系统架构师具备的能力 一般来讲,系统架构师应该拥有以下几方面的能力: 1:具备 8 年以上软件行业工作经验: 2:具备 4 年 ...

  9. 软件构架实践读书笔记二

    什么是软件构架 1.构架定义了元素 2.系统可能而且确实由多个结构组成 3.具有软件的每个计算系统都有一个软件构架 4.某个元素的行为就是构架的内容 构架是一个高层的.系统的总体结构.构架的内容就是构 ...

最新文章

  1. Mac下导出chrome插件
  2. 玩点深入的:Java 虚拟机内存结构及编码实战
  3. 服务器不显示磁盘柜,磁盘柜与服务器的关系
  4. 投影与三维视觉——本征矩阵和基础矩阵
  5. hbase java框架_Hadoop学习笔记—15.HBase框架学习(基础实践篇)
  6. java.sql.SQLException: ORA-00923: FROM keyword not
  7. bentley 二次开发_Bentley的基本概念
  8. 我们和计算机系的老教授聊了聊TCP优化与产学矛盾
  9. ArrayList与LinkedList
  10. 数据结构比较型排序算法分析及选择
  11. Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据全量索引构建
  12. 2021年中国乙醛市场趋势报告、技术动态创新及2027年市场预测
  13. 软件开发过程中各种文档的作用
  14. Neo4j简单构建知识图谱实例
  15. Linux网络命令之 `brctl`
  16. 新建linux efi分区,EFI系统分区是什么?单独创建EFI分区的图文教程
  17. NXP JN5169 ZigBee 3.0开发环境搭建
  18. python求最小公倍数_Python 最小公倍数算法
  19. 航班延误来领钱,信用卡航班延误险最全攻略(2018年版)
  20. 计算机专业考研英语二国家线多少分,考研英语二国家线多少,2019年考研英语二国家线?...

热门文章

  1. win10右下角显示桌面图标消失并且点击左下角Windows按钮或者打开任意文件夹直接全屏无法缩小
  2. LTC流程变革经验详细介绍!华为系智谋帮咨询辅导双登集团LTC变革及基于LTC的营销拓展能力提升!
  3. 范数 --python
  4. Redis-21Redis集群模式-Centos6.5上3台主机3主3从的配置及通过代码访问集群
  5. 与孩童家长的一段奇异的对话:父母视觉正常,孩子却患色盲
  6. 基于Android的飞鸟动画APP设计与实现
  7. dota迷最雷人语录
  8. 共享登录状态解决方案
  9. 为什么我们缺乏多样的人生态度
  10. U-Boot启动内核流程