当前位置: 首页 > 编程日记 > 正文

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)

一、NSNumber

OC数组类NSArray,它只能存放 OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int、float,结构体存放的OC数组中,怎么办?这里的 NSNumber就有用了,它能够把基本数据类型包装成OC对象。

  // 将整形包装成OC对象
  NSNumber *num1 = [NSNumber numberWithInt:120];
  // 将浮点形包装成OC对象  NSNumber *num2 = [NSNumber numberWithDouble:0.5];  // 把包装后的数据存放到OC数组中  NSArray *array = @[@"年龄",num1];  // 遍历数组  for (id obj in array)  {   NSLog(@"%@", obj);  } 

通过NSNumber的方法能够把所有基本数据类型包装成OC对象,再存放到OC数组中。要把NSNumber包装后的对象还原成基本数
  // 将NSNumber类型的对象还原成基本数据类型
  int age = [num1 intValue];
  double a = [num2 doubleValue]; 
还可以 使用编译器特性快速包装一个基本数据:
// 快速包装 @120; @0.5; @NO;
// 使用快速包装,再存放到数组中 NSArray *array2 = @[@"hello",@100, @YES, @0.3, @'H'];

二、NSValue

 NSValue和NSNumber相似,具体来说前者是后者的父类。NSValue可以包装复杂的基本数据类型,如结构体,枚举。

int main()
{
  
  // OC结构体  CGPoint point = CGPointMake(11, 12);   // 将结构体包装成OC对象  NSValue *val = [NSValue valueWithPoint:point];   // 将包装后的OC对象存放到OC数组  NSArray *array = @[val];   NSLog(@"%@", array);   return 0; }
  三、NSDate
 这个类是与时间相关的,日期的格式化。
// 创建日期对象
  NSDate *date = [NSDate date];
  
  // 日期格式化类  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];   // y 年 M 月 d 日  // m 分 s 秒 H (24)时 h(12)时  formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 固定写法,不能随便写   // 将日期格式化成字符串对象  NSString *str = [formatter stringFromDate:date];   NSLog(@"%@", str);  // 格式化的参数都有固定含意,不能随意写。上面是将日期格式化输出,下面再来将字符串中的日期  // 指定日期为  NSString *time = @"2022/05/01 13:30";   // 创建日期格式化对象  NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];  // 格式化日期  formatter2.dateFormat = @"yyyy/MM/dd HH:mm";   NSDate *date2 = [formatter2 dateFromString:time];  NSLog(@"%@", date2);

转载于:https://www.cnblogs.com/yzjxdz/p/4853126.html

相关文章:

android读取xml 字符串,Android 读取本地Xml文件,并转换成String

问题不是解析本地 xml 文件,而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String。与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5s),所以采用本地下载,然后传给前端的方…

Docker入门六部曲——容器

原文链接:http://www.dubby.cn/detail.html?id8734 准备 已经安装好Docker 1.13或者以上的版本。读完的上一篇文章(基本引导)。简单的测试一下你的本地环境是否已经OK了:docker run hello-world。 介绍 让我们开始构建一个Doc…

window.name实现的跨域数据传输

2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是对 JavaScript跨域总结与解决办法 的补充。 有三个页面: a.com/app.html:应用页面。a.com/proxy.html:代理文件,一般是一个没有任何内容的html文件,需…

ajax frameworks(转贴)

Thinking in AJAX(三) —— AJAX框架汇总 引 此文原出于AJAX Patterns网站的一篇《Ajax Frameworks》的wiki文章,很早前我就注意到,后来在国内也有人翻译了,不过最近发现此wiki还是在不断添加维护中,截止此文发布前,作…

Maya角色面部表情动画制作视频教程 Maya: Facial Rigging

Maya角色面部表情动画制作视频教程 Maya: Facial Rigging Maya角色面部表情动画制作视频教程 Maya: Facial Rigging Maya角色面部表情动画制作视频教程 Maya: Facial Rigging MP4 |视频:h264,1280x720 |音频:AAC,44.1 KHz,2 Ch 语言&#x…

(一三〇)UITextField的光标操作扩展

简介 在iOS开发中,有时候需要完全自主的定义键盘,用于完整的单词输入,例如计算机应用中,需要一次性的输入sin(,在移动光标时要完整的跳过sin(,在删除时也要完整的删除,这就需要对光标的位置进行…

android 多个占位符,Android多语言支持:由于占位符计数不同导致的字符串格式问题...

我正在制作一个法语Android应用程序,我正在努力支持英语.我使用“占位符”来格式化我的字符串,因此我可以将它们调整为男性和女性用户.例如,我的s​​trings.xml文件中的这个字符串:Les %1$s sont compliqu%2$ss...将成为“Les hommessontcompliqus”(“男人很复杂”…

Docker入门六部曲——Swarm

原文链接:http://www.dubby.cn/detail.html?id8738 准备工作 安装Docker(版本最低1.13)。安装好Docker Compose,上一篇文章介绍过的。安装好Docker Machine,上一篇文章也提到了,Mac和Windows已经预先安装…

Ubuntu 查看磁盘空间大小命令转

df -hDf命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式:df -hl显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Moun…

MSSQLid清零

truncate table [cellphone2016].[dbo].[tp_phone_9]转载于:https://www.cnblogs.com/wangchuang/p/5259615.html

Blender 3D插图插画设计视频教程 Fantastic 3D illustration with Blender

Blender 3D插图插画设计视频教程 Fantastic 3D illustration with Blender Blender 3D插图插画设计视频教程 Fantastic 3D illustration with Blender Blender 3D插图插画设计视频教程 Fantastic 3D illustration with Blender Brellias |时长:1h 30m |视频:H264 1920x1080 |音…

Linux搜索文件&搜索文件名&替换文件内容

locate是Linux系统提供的一种快速检索全局文件的系统命令,它并不是真的去检索所以系统目录,而是检索一个数据库文件locatedb(Ubuntu系置/var/cache/locate/locatedb),该数据库文件包含了系统所有文件的路径索引信息,所以查找速度很快。time结尾的选项,其单位为天,min结尾的选项其单位为分钟,这些选项的值都为一个正负整数, 如+7,表示,7天以前被访问过的文件,-7表示7天以内被访问过的文件,7表示恰好7天前被访问的文件。:快速返回某个指定命令的位置信息。

Lock和Synchronize区别详解

synchronized是Java中的一个关键字,当我们调用它时会从在虚拟机指令层面加锁,关键字为monitorenter和monitorexitLock是Java中的一个接口,它有许多的实现类来为它提供各种功能,加锁的关键代码为大体为Lock和unLock;synchronized可对实例方法、静态方法和代码块加锁,相对应的,加锁前需要获得实例对象的锁或类对象的锁或指定对象的锁。说到底就是要先获得对象的监视器(即对象的锁)然后才能够进行相关操作。

android usb 触摸屏 apk,Android插入USB设备,自动弹出提示运行apk

USB HOST模式开发下可能会遇到这个问题。第一步是在AndroidManifest.xml文件中修改,主意下面红色字体......一般调用的activity都是Main和Lanunch入口,加入上面的action后,在SDK中以Run As Android Application时,仅执行安装动作,…

sskeychain使用(轻量级框架)

原文地址:http://www.ithao123.cn/content-2407927.html keychain的主要功能就是帮助用户安全地记住他的密码,keychain保存的密码文件都是经过加密的,其它人不能直接通过打开keychain的文件获得保存在keychain中的密码。在mac上可以安装钥匙串…

如何在团队中做好Code Review

一、Code Review的好处 想要做好Code Review,必须让参与的工程师充分认识到Code Review的好处 1、互相学习,彼此成就 无论是高手云集的架构师团队,还是以CURD为主的业务开发团队,大家的技术能力、经验都是有差异的。 通过Code…

分布式服务框架 Zookeeper -- 管理分布式环境中的数据

2019独角兽企业重金招聘Python工程师标准>>> 转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题&am…

ubuntu18下配置VS Code

配置逻辑主要是 launch.json指定预先处理的任务(preLaunchTask)及读取build文件(program) tasks.json指定输入原始文件和输入build文件(args) 参考:https://www.cnblogs.com/JsonZhangAA/p/9750282.html launch.json中的配置 {"version": "0.2.0","co…

Blender钢铁机器人建模与动画全流程制作视频教程

Blender钢铁机器人建模与动画全流程制作视频教程 流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz 语言:英语中英文字幕(根据原英文字幕机译更准确) |大小:15.8 GB |时长:19.5小时 使用软件:…

android 模板 ui布局,Android UI布局

一、线性布局-LinearLayout(至上而下布局)其中android:orientation”vertical”意思为垂直方向的线性布局,此处的”vertical”可改为”horizontal”,意思是水平方向的线性布局。android:layout_width”match_parent”意思为这个控件的宽度占满整个屏幕或者父控件&am…

两数的加减乘除

设计思路: 首先要解决把输入的字符转化为计算的数字的问题,然后解决怎样用消息框输入输出即可。 程序流程图: 源代码: 实验结果: 转载于:https://www.cnblogs.com/wxyxxx/p/4859039.html

使用Docker搭建svn服务器教程

使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点…

SDK Instrumentation创建一个Note的实例

除了高层框架如Robotium的solo,我们也可以直接调用SDK底层的提供的Instrumentation的API来实现如前几篇文章描述的创建一个note的功能。总所周知之Robotium就是基于Instrumentation的框架高层抽象实现的一个项目,所以对比《Robotium创建一个Note的实例》…

UOJ #53.线段树区间修改

【题目描述】:如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和 【输入描述】:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个…

Blender三维插图设计视频教程 3D Characters and Illustrations in Blender 2.9

Blender三维插图设计视频教程 3D Characters and Illustrations in Blender 2.9 MP4 |视频:h264,1920x1080 |音频:aac,44100 Hz |时长:16h:06分钟|文件大小:4.75 GB 流派:电子学习|语言:英语 云桥网络 平台 获取 教程 本课程详细介绍了blender 4个案…

android mac测试地址,android获取有线网的Mac地址

Android TV开发中有的机器会接有线网,需要获取Mac地址,下面是我测试的两种Mac地址的获取方式。1.一共两个方法,目前第二个方法获取的不准,最后一位数取的不对。private String getMacAddress(){String strMacAddr null;try {Inet…

[高中作文赏析]感受冬天

转载于:https://www.cnblogs.com/zhangzujin/p/4864725.html

2022-2028年中国文化产业园投资分析及前景预测报告(全卷)

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国文化行业市场行业相关概述、中国文化行业市场行业运行环境、分析了中国文化行业市场行业的…

matlab 降维工具箱

Matlab Toolbox for Dimensionality Reduction降维方法包括:Principal Component Analysis (PCA) • Probabilistic PCA • Factor Analysis (FA) • Sammon mapping • Linear Discriminant Analysis (LDA) • Multidimensional scaling (MDS) • Isomap •…

程序还没写完只能当然计算器用,先发过来用着后面的慢慢写

真的是没办法,只好先发上来用着,后面的要先处理事情,等处理完接着写!! http://files.cnblogs.com/mari/starco.rar 这个是地址!!!转载于:https://www.cnblogs.com/mari/archive/2004/12/22/80317.html