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 ...
随机推荐
- Scala之OOP
/** * 1,在Scala中定义类是用class关键字: * 2,可以使用new ClassName的方式构建出类的对象: * 3, 如果名称相同,则object中的内容都是class的静态内容,也 ...
- factor graph model
主实验 文慧:用户,商品,评分,review,ranking. 数据集:数据规模,论文源代码
- 学习服务端JavaScript这个有名的Node.js
没接触过,试着简单学一下,从头开始: 参照这个教程:https://github.com/alsotang/node-lessons/tree/master/lesson0 一.搭建环境: 1.搭建N ...
- Echarts的相关问题记录与应用
一.相关问题记录: 1.对图表的div进行隐藏操作,使用hide()或display:none,重新展示时,会造成图表无法获取高度,导致图表的高宽不符合预期: 解决方法:最后调用一下resize()函 ...
- android之拍照与摄像
拍照和摄像的意图很简答,这里直接贴代码 布局文件 <?xml version="1.0" encoding="utf-8"?> <Linear ...
- TAR命令详解
上图,VPN截图,画蛇添足! 在Linux中,压缩与解压用得最多的tar.tar命令确实很厉害. tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包 ...
- c/c++模板的定义和实现分开的问题及其解决方案
注意c/c++模板的定义和实现- - 定义一个类一般都是在头文件中进行类声明,在cpp文件中实现,但使用模板时应注意目前的C ...
- Maven的pom.xml标签详解
<!--父项目的坐标.如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值. 坐标包括group ID,artifact ID和 version.--> <paren ...
- Java网络编程——TCP/UDP
UDP:面向无连接 ☆ 将数据及源地址和目的地址封装成数据包中 ☆ 每个数据报的大小限制在64K ☆ 不可靠协议 ☆ 不需要建立连接,速度快 TCP:面向有连接 ☆ 建立连接,形成传输数据的通道 ☆ ...
- zabbix 监控java程序
http://www.tuicool.com/articles/IRnM7f http://transcoder.baidu.com/from=1012852q/bd_page_type=1/ssid ...