【学习笔记】【oc】类的包装类 协议 category
1.类的两种包装类: 将基本数据包装成对象:NSValue;NSNumber;
NSValue是NSNumber的父类,
NSValue用来封装一些基本数据, NSValue是一个通用的包装类,用来包装单个基本数据类型;
NSNumber是一个更具体的包装类,用于包装c语言的各种数值类型。(数值!)
其主要包括3个方法:
+(id)numberWithXxx:直接将特定类型的值包装成NSNumber;
-(id) initWithXxx:需要先创建一个NSNunmer对象,再使用该方法,用一个基本 数据值来初始化这个对象;
-(id)xxxValue:返回NSNumber的包装的基本类型的值。
#warming 实验1:使用NSNumber的三个方法。
2.处理类的对象:NSLog,description;
NSObject中提供了NSLog,description来处理类的对象;
NSLog打印的是对象 description的返回值;
description的作用:让对象进行自我描述。
ps:自带的description总是返回对象的 16进制首地址。
#warming 实验2:重写description方法;
“isEqual”和“==”: “==”表示比较的两者内存地址必须相同。
ps:NSString中,用常量池来管理直接字符串,常量池保证相同的字符串直接量只有一个。
NSString重写了isEqual方法,NSObject中二者没有区别(“isEqual”和“==”);
重写isEqual:方法可以提供自定义的相同标准;
重写isEqual需满足以下条件: 自反性;对称性;传递性;一致性;对任何不是nil的x,[x isEqual:nil]一定返回假。
#warming 实验3:重写isEqual方法,只要id相同就提示重复;
3.类别和扩展
(1)类别(category):扩展类,方便类的子类使用扩展后的方法;
注意:类别只能扩展类的方法,不能添加成员变量;也不能用@property合成属性。
添加类别的语法:
@interface 已有类(类别名)
@end
@implementation 已有类(类别名)
@end
使用类别的作用:
1.方便类的子类使用扩展后的方法;
2.可以使用类别将类的实现方法分模块化实现,分布到不同的实现文件中,提高项目后期的可维护性。
3.使用类别来调用私有方法。
(2)扩展:相当于匿名的类别,但是可以添加成员变量和用@property合成属性。
4.协议与委托
最新文章
- Node6.9.2 —— Http官网笔记整理
- 20151013 C# 第一篇 流程控制语句
- 【PRML读书笔记-Chapter1-Introduction】1.6 Information Theory
- UtilDev Web Server Pro
- iOS开发之如何修改Mac截屏保存路径
- Android Dialog使用举例
- light oj 1155 - Power Transmission【拆点网络流】
- 在Linux手动把文件转码的方法,防止乱码出现
- DBUtils的使用
- 如何在 iOS 真机运行 Appium
- 外网如何访问 Service?- 每天5分钟玩转 Docker 容器技术(139)
- 套接字输入缓冲装置——InternalInputBuffer
- java基础语法(二)--单列模式
- Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
- alloc_page分配内存空间--Linux内存管理(十七)
- 轻量应用服务器安装 phpMyAdmin
- android 动画学习
- ACM笔记
- fortran学习网站
- system.Data.Entity.Infrastructure.DbUpdateConcurrencyException: Store update, insert, or delete statement affected an unexpected number of rows (0) 问题
热门文章
- HDOJ 1028 Ignatius and the Princess III(递推)
- jquery cycle pugin
- vSphere文档中心
- ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】
- SpringMVC整合fastjson-1.1.41
- 启动android默认浏览器
- linux crontab 定时命令
- Configuring Network Configuration-RHEL7
- 2015 UESTC Winter Training #6【Regionals 2010 >;>; North America - Rocky Mountain】
- 【转】[Algorithm]01分数规划