`
lizhuohuang
  • 浏览: 120602 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

第一课 实例化对象

 
阅读更多
写道
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中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。
 
 
 
写道
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();

 

分享到:
评论

相关推荐

    JAVA学习第一课 I.

    你会学习如何定义一个类,包含属性(fields)和方法(methods),以及如何通过实例化类来创建对象。 5. **封装、继承与多态**:面向对象编程的三大特性在Java中体现得淋漓尽致。封装允许隐藏内部实现细节,提高代码...

    第五课 函数与对象-011

    我们可以通过向函数的`prototype`添加自定义属性和方法,来扩展实例化对象的功能。例如,定义一个名为`Fn1`的函数,然后在`Fn1.prototype`上添加`abc`属性和`cba`方法。这样,通过`new Fn1()`创建的实例`fn1`就可以...

    java教程 第七课 面向对象的高级特性

    当类被加载至虚拟机时,静态属性会被分配内存空间,并且在后续实例化对象时不会重新分配空间。 2. **静态方法(类方法)**:这些方法可以直接通过类名调用,而无需创建对象实例。它们通常用于处理与类相关的操作,...

    JAVA学习第一课 F

    同时,会讲解如何通过`new`关键字实例化对象。 5. **数据类型**: Java有两大类数据类型:基本数据类型(如int、char、float、boolean)和引用数据类型(如类、接口、数组)。理解它们的区别和用法是学习Java的...

    《Python编程案例教程》教案-第18课-面向对象程序设计入门.doc

    方法中第一个参数通常是`self`,它是一个指向对象本身的引用,用于在方法内部访问对象的属性和调用其他方法。 创建类的实例非常简单,例如: ```python myObject = ClassName() ``` 实例化后的`myObject`就可以通过...

    从CWnd自绘第一课之按钮

    本文将深入探讨如何使用CWnd类来实现自定义绘制的按钮控件,这是初学者学习CWnd自绘的第一课。通过这个过程,你将了解如何处理窗口消息、响应鼠标事件以及如何发送消息。 首先,我们要明白,自绘控件意味着我们需要...

    VB免费培训班第一课

    这包括类的定义、属性、方法的设定,以及对象的实例化。 6. **模块和库**:VB允许开发者将常用代码组织成模块,便于重用。同时,VB提供了丰富的内置函数库和API,如VBA(Visual Basic for Applications)库,使得...

    spring in action 第一课

    《Spring in Action 第一课:理解与应用》 在Java开发领域,Spring框架以其强大的功能和易用性,成为企业级应用开发的首选。本课程将深入探讨Spring框架,帮助开发者掌握其核心概念和实际应用,从而提升工作效率,...

    始隐者 C++第一课

    【C++第一课】是针对初学者的C++编程教程,旨在引领你进入这个强大而灵活的编程语言的世界。C++是一种中级语言,它结合了高级语言的易读性和低级语言的性能控制,被广泛应用于系统软件、游戏开发、设备驱动、科学...

    servlet第一课项目

    本项目“servlet第一课项目”是一个基础级别的教程,旨在帮助初学者掌握Servlet的基本概念和应用,通过实现一个简单的猜数字游戏来加深理解。 首先,我们来看一下Servlet的工作原理。Servlet是一个Java类,它继承自...

    JAVA学习第一课 G

    Java学习第一课 G 在Java的学习旅程中,第一课通常会涵盖基础概念,为后续深入学习打下坚实的基础。"G"可能代表了课程的某个阶段或者特定的主题,但在这个场景下,没有足够的信息来具体解释它所指代的内容。然而,...

    第七课 对象类型及相互转化.rar

    本课主要探讨了如何创建和操作不同类型的对象,以及如何在不同类型之间进行转换。下面将详细阐述这些关键知识点。 1. **对象类型**: 在Java中,一切皆为对象。对象是类的实例,类是对象的蓝图。例如,你可以定义...

    Archie Osg教程第一课Simple

    **Archie OSG教程第一课:绘制简单多边形** Archie OSG,全称是Architectural OpenSceneGraph,是一个基于OpenSceneGraph(OSG)的开源图形库,用于三维场景的创建、管理和渲染。OpenSceneGraph是一个高性能的3D...

    软件工程课件:第8章 面向对象方法学引论(第三堂课).ppt

    软件工程第八章面向对象方法学引论(第三堂课) 面向对象方法学引论是软件工程中的一种重要方法学,它强调通过对象之间的交互和协作来实现系统的功能。本节课将围绕软件工程中的面向对象方法学引论进行讨论,并通过...

    第一课 Java 的一些基本概念(下).rar

    它使用类作为其主要的组织单元,通过类的实例化来创建对象,实现面向对象编程。类包含数据(字段或属性)和行为(方法),封装了数据和操作数据的逻辑。 接下来是Java的类库,它包含了丰富的API(应用程序接口),...

    第一课 Java 的一些基本概念(上).rar

    "第一课 Java 的一些基本概念(上)"这个压缩包文件很显然是为初学者准备的教程资料,旨在介绍Java编程的基础知识。 1. **Java简介**:Java是基于类、面向对象的语言,它引入了垃圾回收机制,自动管理内存,降低了...

    QT第一课_对话框小程序

    QT第一课:对话框小程序 QT是一个强大的跨平台应用程序开发框架,由The Qt Company提供,广泛应用于桌面、移动和嵌入式系统。本教程聚焦于QT中的“对话框”(Dialog)组件,它是用户界面中一种重要的交互元素,用于...

    [Qt从0到1]第一课源码

    【Qt从0到1】第一课源码是一个针对Qt初学者的编程实例,旨在帮助学习者逐步理解并掌握Qt框架的基础应用。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面、移动设备及嵌入式系统。本教程源码详细...

    易语言GDI+第十四课 字体实例2

    第一个实例主要展示了字体放大的技巧以及抗锯齿技术的运用。抗锯齿是一种优化图形显示的技术,它通过平滑边缘,减少在显示高对比度边界时出现的像素化现象,使文本和图形看起来更加清晰、平滑。在易语言中,我们可以...

    第一课vue课程介绍-011

    在"第一课Vue课程介绍-011"中,我们将探讨Vue的基础知识,包括模板语法、指令、计算属性、响应式系统、方法、表单处理、事件处理、组件系统,以及插槽和组件通信。以下是这些概念的详细说明: 1. **模板语法**:Vue...

Global site tag (gtag.js) - Google Analytics