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 ...
随机推荐
- C语言printf()函数:格式化输出函数
C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为: int printf( char ...
- Go语言interface详解
interface Go语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服. 什么是interface 简单 ...
- jQuery基础--样式篇(4)
jQuery选择器: 1.id选择器:通过id名来获取节点,id是唯一的,每个id在页面上只能使用一次. $( "#id" ) 2.类选择器:通过class样式类名来获取节点 $( ...
- iOS开发中的错误整理,Changing the delegate of a tab bar managed by a tab bar controller is not allowed
iOS [错误:'Changing the delegate of a tab bar managed by a tab bar controller is not allowed.'] 错误:'Ch ...
- 【BZOJ 3879】SvT
http://www.lydsy.com/JudgeOnline/problem.php?id=3879 SvT的中文是后缀虚树? 反正本蒟蒻不懂,还是$O(nlogn)$的后缀数组和单调栈维护来做, ...
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
- 【HDU 5833】Zhu and 772002(异或方程组高斯消元)
300个最大质因数小于2000的数,选若干个它们的乘积为完全平方数有多少种方案. 合法方案的每个数的质因数的个数的奇偶值异或起来为0. 比如12=2^2*3,对应的奇偶值为01(2的个数是偶数为0,3 ...
- github图片
github:https://github.com/BigShow1949/BigShow1949
- UML类图中的六种关系及实例
前言: 设计模式是一种对于面向对象语言(C#,C++,Java)的高级应用.其思维体现出的是真正的代码设计.每一种模式都堪称巧妙!但基于各种设计模式,这里少不了基本的类图设计,本文简要列出6种关系,及 ...
- 【BZOJ-1090】字符串折叠 区间DP + Hash
1090: [SCOI2003]字符串折叠 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1127 Solved: 737[Submit][Stat ...