写道
NSClassFromString是一个很有用的东西,尤其在进行iPhone toolchain的开发上。
正常来说,
id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];
和
id myObj = [[MySpecialClass alloc] init];
是一样的。但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。
因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。
比如在iPhone中,NSTask可能就会出现这种情况,所以在你需要使用NSTask时,最好使用:
[[NSClassFromString(@"NSTask") …..]]
而不要直接使用[NSTask …]这种写法。
NSClassFromString的好处是:
1 弱化连接,因此并不会把没有的Framework也link到程序中。
2 不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。
正常来说,
id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];
和
id myObj = [[MySpecialClass alloc] init];
是一样的。但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。
因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。
比如在iPhone中,NSTask可能就会出现这种情况,所以在你需要使用NSTask时,最好使用:
[[NSClassFromString(@"NSTask") …..]]
而不要直接使用[NSTask …]这种写法。
NSClassFromString的好处是:
1 弱化连接,因此并不会把没有的Framework也link到程序中。
2 不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。
写道
oc = objective-c
oc 创建实例化对象
1.ClassName *myNewClassName; // 指针
2.myNewClassName = [ClassName alloc]; //通过alloc这个命令申请一个空间来存放我们实例出来的对象
3.myNewClassName = [myNewClassName init]; //初始化对象
4.ClassName *myNewClassName=[[ClassName alloc] init]; // 简化写法
注:
和java的声明写法很相近
1.ClassName obj;
2.obj = new ClassName();
3.ClassName obj = new ClassName();
oc 创建实例化对象
1.ClassName *myNewClassName; // 指针
2.myNewClassName = [ClassName alloc]; //通过alloc这个命令申请一个空间来存放我们实例出来的对象
3.myNewClassName = [myNewClassName init]; //初始化对象
4.ClassName *myNewClassName=[[ClassName alloc] init]; // 简化写法
注:
和java的声明写法很相近
1.ClassName obj;
2.obj = new ClassName();
3.ClassName obj = new ClassName();
相关推荐
第九节课python的类第三题 (1)属性:name(str)、age(int)、male(性别,str)、major(专业,str) (2)方法: def getInfo(self):接收用户输入,检测并设置学生的四项基本信息。年龄必须小于50,性别只能是“男”或“女”...
C#面向对象技术 第一课作业 里面包含实例化的对象与方法,通过Main方法调用
也就是说,类的实例化就是 创建对象的过程类的实例就是对象。 ----------------------- 完成Java面向对象程序设计实验课的心得体会(1)全文共6页,当前为第1页。 完成Java面向对象程序设计实验课的心得体会(1)全文共6...
对象图是类图的实例化,一个类图可以对应多个对象图,每个对象图描述了系统在某个特定时刻的状态。 ... (继续完善内容) 3.4 包图 包图是描述包之间的关系的图,它显示了系统中包之间的关系和依赖情况。包图是...
1.单例模式可以构建出全局维护使用的单一实例对象,避免了变量全局污染 2.单例模式的单例对象只会在实例化的时候生成一次,之后进行返回,减少了不必要的 3.单例模
第一课 Windows编程和面向对象技术 1.1 Windows发展历史 1.2 Windows操作系统特点 1.3 Windows应用程序设计的特点 1.4 Windows应用程序的开发工具 1.5 面向对象和Windows编程 第二课 使用Visual C++...
练习13 这一课的对象是什么 练习14 函数Pod中的Perl 第14章 tie函数,DBM文件和数据库挂钩 14.1 连接变量与类 14.1.1 tie函数 14.1.2 预定义方法 14.1.3 连接标量 14.1.4 连接数组 14.1.5 连接...
5、course 被继承父类: (1)设定编号、课程名称、上课地点、时间、教授老师属性 (2)编写构造方法,使实例化对象时即可完成属性赋值 (3)重写方法 toString(),用于输出课程详细信息 (4)将其移至新建 package ...
通过函数的形式来创建对象(必须进行实例化),也可以进行多重实例化 el:通过一个怪物对象来创建更多不同的怪物实例对象 function person(name,age){ this.name=name; this.age=age; } var dxq=new person("John",...
第2课 参数化草图绘制之一 2.1 草绘工作界面 2.1.1 进入草绘工作界面 2.1.2 草绘工具栏 2.1.3 草绘命令工具栏 2.2 点、直线、矩形的绘制 2.2.1 点的绘制 2.2.2 直线的绘制 2.2.3 矩形、平行四边形的绘制
一个简单的HTML实例 3、CSS+DIV网页样式与布局 第1部分 CSS基础知识篇 第2部分 CSS+DIV美化和布局篇 第3部分 CSS混合应用技术篇 第4部分 综合案例篇 小型工作室网站 第5部份 实战(企业网站、旅游网站、网上...
第一课 Windows编程和面向对象技术 1.1 Windows发展历史 1.2 Windows操作系统特点 1.3 Windows应用程序设计的特点 1.4 Windows应用程序的开发工具 1.5 面向对象和Windows编程 第二课 使用Visual C++...
第一课 Windows编程和面向对象技术 1.1 Windows发展历史 1.2 Windows操作系统特点 1.3 Windows应用程序设计的特点 1.4 Windows应用程序的开发工具 1.5 面向对象和Windows编程 第二课 使用Visual C++...
实例化后,Lesson3Streams类的对象必须将一个参数传递给构造函数,以指定输入文件的名称。 (可选)构造函数将接受正则表达式作为第二个参数。 指定后,将使用第二个参数代替默认模式(请参见上一段)。 * 文本...
2.4.2 基本成员默认值 2.5 方法、参数和返回值 2.5.1 参数列表 2.6 构建一个Java程序 2.6.1 名字可见性 2.6.2 运用其他构件 2.6.3 static 关键字 2.7 你的第一个J ava程序 编译和运行 2.8 注释和嵌入式文档 2.8.1 ...
第一篇 C++概述 第1章 由C迁移到C++ 2 第2章 C++代码规范 11 第二篇 C++基本语言 第3章 C++数据类型 40 第4章 表达式 96 第5章 C++语句 106 第6章 标准模板库STL 130 第三篇 C++面向对象编程 第7章 类 148 第8章 类...
状态是编程中经常碰到的实例,将状态对象化,设立状态变换器,便可在状态中轻松切换. 设计模式之 Memento(注释状态?) 很简单一个模式,就是在内存中保留原来数据的拷贝. 设计模式之 Interpreter(解释器) 主要用来对...
如果不愿意请向前传”, 纸条就一个接一个的传上去了,糟糕,传到第一排的 MM 把纸条传给老师了,听说是个老 处女呀,快跑! 责任链模式: 在责任链模式中,很多对象由每一个对象对其下家的引用而接起来形成一条 ...