OC方法和文件编译

一、OC方法

(一)对象方法

(1)对象方法以-开头如 -(void)xx;

(2)对象方法只能又对象来调用

(3)对象方法中可以访问当前对象的成员变量

(4)调用格式 [对象名 对象方法名];

(5)设计一个学生类和狗类,练习对象方法的使用。

学生类的声明:


学生类的实现:


狗类的声明:


狗类的实现:


主程序:


(二)类方法

(1)类方法以+开头 如+(void)put;

(2)类方法只能由类来调用

(3)类方法中不能访问实例(成员)变量,因为类方法又类来调用,并没有创建存储空间来存储类中的成员变量。

(4)调用格式:[类名 类方法名];

(5)类方法的好处和适用场合:

不依赖于对象,执行效率更高;

能用类方法解决的问题,尽量使用类方法;

场合:当方法内部不需要使用到成员变量时,可以改为类方法。

(6)设计一个计算器类,练习使用类方法。

计算器类的声明:


计算器类的实现:


主程序:直接使用类名调用类方法


注意1:可以允许类方法和对象方法同名。

注意2:在对象方法中可以调用类方法。

(三)方法名

(1)不带参数的方法

声明:


调用:


(2)带参数的方法

声明:


调用:


注意:冒号也是方法名的一部分。

二、文件编译

在工作中,通常把不同的类放到不同的文件中,每个类的声明和实现分开,声明写在.h头文件中,实现写在相应的.m文件中去,类名是什么,文件名的前缀就是什么。

假设有两个类,分别是Person类和Dog类,则通常有下面五个文件:

(1)Person.h Person类的声明文件

(2)Person.m Person类的实现文件

(3)Dog.h Dog类的声明文件

(4)Dog.m Dog类的实现文件

(5)Main.m 主函数(程序入口)

在主函数以及类的实现文件中要使用#import包含相应的头文件。

补充:import有两个作用:一是和include一样,完完全全的拷贝文件的内容;二是可以自动防止文件内容的重复拷贝(即使文件被多次包含,也只拷贝一份)。

在使用命令行进行编译链接文件的时候,通常是把.m文件单文件编译,然后再把所有的目标文件链接,但是在Xcode中,是把所有的.m文件都进行编译链接的,如果出现重复定义的错误,那大部分问题根源应该就是文件内容被重复包含或者是包含.m文件所引起的。

源文件中不论是使用include还是import,都不能包含.m或者是.c文件,只能放声明。因此,在OC中通常把类拆分开来,拆分成声明和实现两个部分。

提示:这也是编程思想的一种体现,可以说.h和.m文件时完全独立的,只是为了要求有较好的可读性,才要求两个文件的文件名一致,这也是把接口和实现分离,让调用者不必去关心具体的实现细节。

Xcode是写一行编译一行,有简单的修复功能,红色是错误提示,黄色警告。如果在程序中声明了一个变量,但是这个变量没有被使用也会产生警告信息。在调试程序的时候,如果发现整个页面都没有报错,但是一运行就错误,那么一定是链接报错。

时间: 2024-09-23 19:36:53

OC方法和文件编译的相关文章

第三方apk文件编译到系统文件(system.img)中的方法

1  (1)源码编译后,把apk拷贝到out\target\product\generic\system\app中.     (2) 执行命令make snod , 把添加的spk编到system.img 中    缺点:执行make clean 后,再次make 完毕需要重新执行上面操作.  2  "方法一"的改进.     (1) 新建一个文件夹目录,用来存放apk文件           mkdir packages/apps/Prebuilt_apps            

破解.net程序(dll文件)编译和反编译方法_php技巧

我只做个简单的小例子,给大家一个思路,吼吼~~~~ 1使用工具 Reflector.exe 用来查看.net代码 这个就不用多说了它是学.net必备神器 Ildasm.exe:用来将dll,exe编译为IL文件 ilasm.exe:用来将IL文件编译回来dll或exe EmEditor文本处理工具这个大家如果没有我这有下载里面有注册码EmEditor.rar 2Ildasm和ilasm基本知识: ilasm.exe与ildasm.exe的使用 首先打开cmd命令.cd 到 C:\Program

图形界面编译工具Koala将SASS文件编译成CSS文件

文章简介:本文主要通过创建一个SASS项目为实例,带领大家如何使用Koala这样的图形界面编译工具来将你的SASS项目,将SASS文件编译成CSS文件. <SASS界面编译工具--Codekit的使用>一文中图解了"CodeKit"图形工具编译SASS项目.由于CodeKit是一款付费工具,而且只能在Mac中使用,因此国内众多SASS爱好者,或者初学者也就无法体验CodeKit工具编译SASS项目.幸运的是,有一款国产图形工具Koala和CodeKit功能极其类似,支持多个

把aspx文件编译成DLL文件

编译 前言 Asp.net不是asp的简单升级,而是微软.Net计划中的一个重要组成部分,它依托.Net的多语言与强大的类库支持,引进了服务端HTML控件与WEB控件,自动处理控件的客户端与服务端的 交互,为开发人员提供了类似Windows下窗口编程的界面,为开发大型网络应用程序功能提供了良好的编程接口,也能够极大地提高开发人员的工作效率. 然而,"一次转换,两次编译"过程使得aspx文件在首次执行(或更新后首次运行)时显得略有不足,特别是在拥有大量aspx及codebehind的代码

结合MS AJAX将js文件编译到动态链接库

为了使javascript代码不被窃取,我们可以将js文件编译成动态链接库(dll)文件.下面为了演示这一功能,创建了一个控件. 程序代码:http://www.cnblogs.com/Files/hblynn/SampleControlsCS.rar 一.创建一个类库项目,命名为UpdateAnimate. 二.向项目中添加引用System.Web, System.Drawing, System.Web.Extensions 三.向项目中添加一个Jscript的文件UpdatePanelAni

JAVA 文件编译执行与虚拟机(JVM)简单介绍

java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行.本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明.    一.Java源文件的编译.下载.解释和执行  Java应用程序的开发周期包括编译.下载.解释和执行几个部分.Java编译程序将Java源程序翻译为JVM可执行代码?字节码.

转 py文件编译为pyc

什么是pyc文件 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念.pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的. 为什么需要pyc文件 这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软

求助:调用包含并行计算的m文件编译成的动态链接库

问题描述 求助:调用包含并行计算的m文件编译成的动态链接库 请问如何在c++环境下调用包含并行计算(parfor)的MATLAB编译好的动态链接库(C++ shared library)?当m文件中不包含matlabpool open时,动态链接库是可以成功调用的,但是一旦m文件中包含matlabpool open,调用时会出现错误: "XXX exited with code -529697949" 求大神帮忙,如何调用含有并行计算的MATLAB动态链接库? 我的环境是:win7,Q

Python编程中用close()方法关闭文件的教程

  这篇文章主要介绍了Python编程中用close()方法关闭文件的教程,是Python编程入门中的基础知识,需要的朋友可以参考下 close()方法方法关闭打开的文件.关闭的文件无法读取或写入更多东西.文件已被关闭之后任何操作会引发ValueError.但是调用close()多次是可以的. Python自动关闭,当一个文件的引用对象被重新分配给另外一个文件.它使用close()方法来关闭一个文件一个很好的做法. 语法 以下是close()方法的语法: ? 1 fileObject.close