iOS - 类簇
类簇是在Objective-C中Foundation Framework中广泛使用的一种设计模式
1.发现类簇(Class Cluster)的踪迹###
//*> 执行下面代码
id obj1 = [NSMutableArray alloc];
id obj2 = [NSArray alloc];
id obj3 = @[@"1",@2];
id obj4 = [[NSArray alloc] init];
id obj5 = [[NSArray alloc] initWithObjects:@"obj1",@"obj2", nil];
id obj6 = [[NSArray alloc] initWithArray:obj5];
id obj7 = @[@"1",@"2"].mutableCopy;
id obj8 = [[NSMutableArray alloc] init];
id obj9 = [[NSMutableArray alloc] initWithArray:obj5];
id obj10 = [[NSMutableArray alloc] initWithObjects:@"1", nil];
NSLog(@"obj1%@",[obj1 class]);
NSLog(@"obj2%@",[obj2 class]);
NSLog(@"obj3%@",[obj3 class]);
NSLog(@"obj4%@",[obj4 class]);
NSLog(@"obj5%@",[obj5 class]);
NSLog(@"obj6%@",[obj6 class]);
NSLog(@"obj7%@",[obj7 class]);
NSLog(@"obj8%@",[obj8 class]);
NSLog(@"obj9%@",[obj9 class]);
NSLog(@"obj10%@",[obj10 class]);
//*> 打印结果
/*
2016-03-24 11:35:17.516 测试1[1388:558109] obj1__NSPlaceholderArray
2016-03-24 11:35:17.516 测试1[1388:558109] obj2__NSPlaceholderArray
2016-03-24 11:35:17.516 测试1[1388:558109] obj3__NSArrayI
2016-03-24 11:35:17.516 测试1[1388:558109] obj4__NSArray0
2016-03-24 11:35:17.517 测试1[1388:558109] obj5__NSArrayI
2016-03-24 11:35:17.517 测试1[1388:558109] obj6__NSArrayI
2016-03-24 11:35:17.517 测试1[1388:558109] obj7__NSArrayM
2016-03-24 11:35:17.517 测试1[1388:558109] obj8__NSArrayM
2016-03-24 11:35:17.517 测试1[1388:558109] obj9__NSArrayM
2016-03-24 11:35:17.517 测试1[1388:558109] obj10__NSArrayM
说明:__NSPlaceholderArray、NSArrayI、NSArray0和NSArrayM分别都是NSArray,NSMutableArray的私有类。
*/
iOS - 类簇的更多相关文章
- iOS开发-类簇(Class Cluster)
类簇(Class Cluster)是定义相同的接口并提供相同功能的一组类的集合,仅公开接口的抽象类也可以称之为类簇的公共类,每个具体类的接口有公共类的接口抽象化,并隐藏在簇的内部.这些类一般不能够直 ...
- IOS 杂笔-1(为什么不继承类簇?)
答:首先,类簇是可以继承的,并不是不可以.例如,我们可以选择继承NSSting,但是此时你用你自己设定的类去调用NSSting的一些方法时,会存在无法实现的问题,这是为什么呢. 1.类簇里有很多私有的 ...
- iOS之NSArray类簇简介-(copy、mutableCopy导致程序crash)
1.前言 开发时常常用数组对数据进行处理,对NSMutableArray进行操作时经常导致程序崩溃,特研究一下NSArray的类簇!涉及__NSPlaceholderArray.__NSArray0. ...
- OC 类簇与复合
OC 类簇与复合 类簇: 类簇是Foundation框架中广泛使用的设计模式.类簇将一些私有的.具体的子类组合在一个公共的.抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不 ...
- KMeans聚类 K值以及初始类簇中心点的选取 转
本文主要基于Anand Rajaraman和Jeffrey David Ullman合著,王斌翻译的<大数据-互联网大规模数据挖掘与分布式处理>一书. KMeans算法是最常用的聚类算法, ...
- 从零开始学C++之IO流类库(四):输出流格式化(以操纵子方式格式化 以ios类成员函数方式格式化)
一.以操纵子方式格式化 数据输入输出的格式控制使用系统头文件<iomanip>中提供的操纵符.把它们作为插入操作符<<的输出对象即可.如setiosflags.setw.set ...
- Objective-C 类簇深入理解
类簇(class cluster),是一种基于抽象工厂的设计模式,广泛运用于系统的Foundation框架.顾名思义,即一坨类,这里指的是继承自同一父类的一组私有子类.这种实现既可以简化公共接口,又保 ...
- Air test ios类使用
1.iOS手机的滑动 相关代码 #python class IOS(Device): ... @property #获取屏幕的尺寸 def display_info(self): if not sel ...
- 输出流格式化(以操纵子方式格式化,以ios类成员函数方式格式化)
一.以操纵子方式格式化 数据输入输出的格式控制使用系统头文件<iomanip>中提供的操纵符.把它们作为插入操作符<<的输出对象即可.如setiosflags.setw.set ...
随机推荐
- WPF 异步加载高清大图
不管什么东西,但凡太大了,总是让人又爱又恨啊!(很有道理的样子,大家鼓掌└( ̄  ̄└)(┘ ̄  ̄)┘) 猿:老板,现在这社会啊,真是浮躁啊,之前还是什么1080P,然后就到了2K,现在又到了4K……他 ...
- 【开源】LLMAnimator 60多种动画让你的应用动起来
github: https://github.com/brookshi/LLMAnimator ,欢迎star/fork 之前做android的时候需要给应用加些动画效果,在github上找到这个库 ...
- 处理Linux下subversion尝试连接自建的VisualSVN server报“Key usage violation in certificate has been detected”错误的问题
在Linux下使用subversion尝试链接VisualSVN server搭建的svn库,可能会报下面错误, svn: OPTIONS of 'https://server.domain.loca ...
- SQL2008R2 不支持用该后端版本设计数据库关系图或表
向下不兼容. 要么安装SQL2012,要么把SQL2012数据库通过脚本转成2008
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
[整理] 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...
- DNS资源纪录(Resource Record)介绍
http://dns-learning.twnic.net.tw/bind/intro6.html 类型 SOA NS A AAAA PTR CNAME MX -------------- ...
- 15-grep 简明笔
在文件中搜索模式 grep [options] pattern [file-list] 参数 pattern为正则表达式,file-list为grep要搜索的普通文本文件的路径名列表 选项 -c ...
- 50-ln 简明笔记
为文件建立链接 ln [options] existing-file [new-link] ln [options] existing-file-list directory ln可以为一个或多个文件 ...
- jQuery基础--样式篇(2)
老套路,最开始上手就是写一个“Hello world!”,使用jQuery后获取元素十分简单,如下面获取div的对象,原生的javascript代码:document.getElementsByTag ...
- zabbix 微信报警
http://blog.csdn.net/wh211212/article/details/52735236 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越 ...