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 ...
随机推荐
- 利用PhotoShop将Font-Awesome转为图片格式
介绍如何将Font-Awesome等字体图标转换为图片格式,使用PHOTPSHOP很简单. 网上找了很多,都比较麻烦.别问为什么要这么做,因为你还没遇到需要的时候. 下载Font-Awesome字体库 ...
- java 中遍历hashmap 和hashset 的方法
一.java中遍历hashmap: for (Map.Entry<String, Integer> entry : tempMap.entrySet()) { String ...
- linux中级-JAVA企业级应用TOMCAT实战
1. Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共 ...
- C# 多线程join的用法,等待多个子线程结束后再执行主线程
等待多个子线程结束后再执行主线程 class MultiThread{ #region join test public void MultiThreadTest() { Thread[] ths = ...
- iOS开发小技巧--计算label的Size的方法总结
计算label的Size方法 sizeWithAttributes:方法 适用于不换行的情况,宽度不受限制的情况 /// 根据指定文本和字体计算尺寸 - (CGSize)sizeWithText:(N ...
- HSV
HSV 相比于面向机器的RGB, HSV或HSI更贴近于人对颜色的描述: H: Hue, 颜色本身 S: Saturation, 纯色被白色稀释的程度. V: Value, 或I, Intensity ...
- OkHttp:Java 平台上的新一代 HTTP 客户端
OkHttp 简介 OkHttp 库的设计和实现的首要目标是高效.这也是选择 OkHttp 的重要理由之一.OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这使得 ...
- Java追加文件内容的三种方法
import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io. ...
- 【凯子哥带你学Framework】Activity启动过程全解析
It’s right time to learn Android’s Framework ! 前言 学习目标 写作方式 主要对象功能介绍 主要流程介绍 zygote是什么有什么作用 SystemSer ...
- Java多线程学习(吐血超详细总结)
本文主要讲了java中多线程的使用方法.线程同步.线程数据传递.线程状态及相应的一些线程函数用法.概述等. 首先讲一下进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的 ...