一:objective-c简介
Objective-C是进行iPhone软件开发的语言
Objective-C语言是C语言的一个扩展集
Objective-C是一种面向对象的语言
大小写敏感
程序语句必须以(;)结束
开发工具(Xcode)
二、第一个Objective-c程序
启动
Xcode。初次启动的时候,也许会弹出一个“Welcometo Xcode”的一个对话框,我们可以把它关掉。
然后是选择屏幕上部菜单的“File->New Project”,出现了一个让你选择项目种类的对话框。你需要在对话框的左边选择“CommandLineUtility”
,然后在右边选择“FoundationTool”,然后选择“Choose...”按钮。输入项目名称“hello world",然后选择save as
#import<Foundation/Foundation.h>
int main (int argc, constchar * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePoolalloc] init];
//----------------------------------------
NSLog(@"Hello,iphone!");
//----------------------------------------
[pool drain];
return 0;
}
#import<Foundation/Foundation.h>
告诉编译器导入Foundation框架中的Foundation.h主头文件;说到这里,要说一下Cocoa:
Cocoa包含两个核心框架:Foundation框架和Appkit框架
CocoaTouch包含两个框架:Foundation框架和UIKit框架
再说一下框架:所谓框架 ,就是一个集合,其中包含着头文件,库等资源 文件;每个框架 中均有一个主头文件,该头文件包含了框架 中各个 头文件,一但引入 了主头文件,就可以在自己的程序 里使用任何在该框架 里的类;这就是框架!
格式:int main(intargc, const char* argv[])
每一个程序有且只有一个main函数
表示程序将在何处开始执行。
return 0;
0:程序正常
非0:通常表示出现了一些问题(如:很可能无法找到程序所需的文件)
NSAutoreleasePool*pool = [[NSAutoreleasePoolalloc]init];
//可以理解为在内存中开辟了一块共用的内存空间
内存管理在IOS开发中的非常重要的
[pool drain];
//释放共用的内存空间
NSLog(@"Hello,iphone!");
NSLog是Objective-C库中的一个函数
作用:向控制台输出文本内容
将显示常量字符串,类似于printf函数,并且它会自动在文本后面添加'\n'。当然其中也可以使用转义字符。例如还有:
NSLog(@"The sum of 50 and 25 is %i",sum);
//----------------------------------------
单行注释:使用连续的斜杠(//)
多行注释:使用/*开头,*/结尾
不能嵌套使用
好处
比较清晰的指出该断程序用意
有利于团队合作,有利于后期的代码维护
三、定义一个新类:
选择File文件里New一个File文件,在打开的对话框里,选择objective-c class;输入类名为Test:
它会自动生成Test.h,Test.m文件:.h是头文件,.m是objective-c的源文件;
首先是test.h头文件代码如下:
#import <Foundation/Foundation.h>
@interface Test : NSObject
@end
然后是test.m源文件代码如下:
#import "Test.h"
@implementation test
@end
@interface部分
描述类、类的数据成分以及类的方法
@的是指令符
@implementation部分
实现这些方法的实际代码
@interface部分的一般格式:
@interface NewClassName : ParentClassName{
memberDeclarations;}
methoddeclarations;
@end
@implementation部分的一般格式:
@implementation NewClassName
methodDefinitions;
@end
它是以@interface开始,以@end结束!!!!@implementation也是这样,以@end结束!!!;
类的命名规则:以字母或下划线开头,之后可以是任何字母,下划线或者0~9数字组合,类名以大写字母开头,实例变量、对象以及方法的名称以小写字母开始
;
这就是创建类;
四、声明定义变量及方法
Test.h
@interface Test : NSObject{//属性必须定义在这个大括号里
int intX;
int intY;
}
+(int) staticIntY;//属于类,不属于对象
-(void) print;//无参方法
-(void) setIntX:(int)n;//带一个参数的方法
-(void) setIntY:(int)d;
-(void) setIntX:(int)n andSetIntY:(int)d;//多输入参数的方法
-(int) intX;//get方法
-(int) intY;
@end
函数开头的(-)号或者(+)号表示:
(-) 该方法是实例方法(对类的特定实例执行一些操作) ;(+)是类方法(即对类本身执行某些操作的方法,例如创建类的新实例)
函数的声明示例:
-(void)setNumerator:(int)n第一个表示方法类型,返回类型,接着是方法名,方法接受的参数,参数类型,参数名
注:如果不带参数则不用使用“:”号,从程序中可以看出来
如果没有指定任何返回类型, 那么默认是id类型, 所有的输入参数默认也是id类型 (id类型可用来引用
任何类型的对象) 。
有多个参数的方法:
-/+ (return type) function_name : (parameter type) parameter1 otherParameter : (parameter_type) parameter2;
如果只有一个参数,在: 后面声明参数的类型和名称;如果有多个参数的话,每个参数前面都要有一个:,
然后接着是参数类型和参数名称。可是
Test.m文件
@implementation Test
+(int)staticIntY{
Y+=1;
return Y;
}
-(void)print{
NSLog(@"两个数相加 的结果 为:%i",intX+intY);
}
-(void)setIntX:(int)n{
intX=n;
}
-(void)setIntY:(int)d{
intY=d;
}
-(void) setIntX:(int)n andSetIntY:(int)d{
intX=n;
intY=d;
}
-(int)intX{
return intX;
}
-(int)intY{
return intY;
}
@end
这个实现类没有什么好说的,相信大家都能看懂,就只是实现方法;
然后就是在main.m文件里测试了:
Test *test=[[Test alloc]init];//对象的声明 和初始化,其中alloc为对象 申请了内存空间,init则完成 了对象 的初始化。在完成 了对象 声明 和初始化以后,就可以调用对象 的方法了。
[test setIntX:1];//方法调用
[test setIntY:1];
[test print];//无参调用
[test setIntX:2 andSetIntY:2];//多参方法调用
[test print];
创建一个Test对象:
Test *test=[[Test alloc]init];
一定要注意在数据 类型的右边有一个星号。所有的objective-c对象变量都是指针类型的。等号右边的语句是创建 一个对象 ,这是一个嵌套 的方法调用。第一个调用的是Test的alloc方法。这是一个相对对比较 底层的调用 ,因为该方法其实是为test变量申请一个内容 空间,第二个调用的是新创建 对象 的init方法,这个init方法用于初始化变量值。init实现了比较常用的设置,比如设置实例变量的初始值。
后面两句是调用方法:
【对象名 方法名:实参】;有参调用,如果是无参的就没有冒号及后面的,如果是多参的:【对象名 方法名:实参方法名:实参】。
注:创建一个新对象,都要请求分配内存,在完成对该对象的操作时,必须释放其所用的内存空间
i Phone平台不支持垃圾回收机制外部要访问实例变量需要通过类的方法来检索其值,不能直接访问
在Objective-C当中,所有的对象都可以使用id来进行区分。我们知道一个类仅仅是一些数据外加上操作这些数据的代码
,所以id实际上是指向数据结构的一个指针而已,相当于void*。
总结一下对象声明的语法:
类名 *test,*test1;
定义 了test和test1是指定类的对象。要注意的是,这只是定义了一个指针变量,尚未为它所包含的数据获得内存空间。在调用alloc方法之后,这些对象 才获得(分配)空间。
输出结果为:
2012-03-24 11:24:00.522 HelloWorld[652:707]两个数相加的结果为:2
2012-03-24 11:24:00.612 HelloWorld[652:707]两个数相加的结果为:4
转载,请注明原处!!!
转载,请注明原处!!!
分享到:
相关推荐
iOS 7 Programming Fundamentals: Objective-C, Xcode, and Cocoa Basics by Matt Neuburg (Author) Publisher: O’Reilly Media (October 2013) Language: English ISBN-10: 1491945575 ISBN-13: 978-...
《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本《Objective-C 程序设计(第4版)》学习Objective-C。...
iphone开发的例子,带控件的的hello, world
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
网上看到一些混合编程的文章,总是遇到一些问题。经过半天时间的摸索,自己终于可以顺利完成啦。以下步骤中,Hello类只是为Objective-C调用C++做的一个封装。讲解一下操作步骤.
一个自定义的键盘View,可以用来输入表情。表情和文字的映射关系在plist,有中英文两套关系。删除可以按表情为单位删除,支持TextView和TextField,表情数量可以自己添加,自己建立映射关系。
学习Objective-C: 入门教程
个人学习objective-c和xcode helloworld 笔记,比较了objective-c 和C++ JAVA的一些区别
《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...
Objective-C 分离 接口和实现文件,具体资料请参考苹果开发者Mike的博文http://blog.sina.com.cn/s/blog_7aa21f320100r7wn.html
Pro Objective-C The Objective-C programming language continues to grow in popularity and usage because of the power and ease-of-use of the language itself, along with the numerous features that ...
Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition).epub (epub 格式) Want to write iOS apps or desktop Mac applications? This introduction to programming and the Objective-C language is ...
第2章 Objective-C程序设计 2.1 编译并运行程序 2.1.1 使用Xcode 2.1.2 使用Terminal 2.2 解释第一个程序 2.3 显示变量的值 2.4 小结 2.5 练习 第3章 类、对象和方法 3.1 到底什么是对象 3.2 实例和方法 3.3 用于...
Cocoa多线程开发Objective-C详解 多线程 Objective-C iOS cocoa Xcode
本书作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本书学习Objective-C。读者不需要先学习底层的C语言编程,就可以了解面向对象编程。 本书...
The flexibility of Apple’s developer tools: how to install Xcode and write programs in Objective-C The power of Cocoa and Cocoa touch: how to make Mac OS X applications or iOS apps that do cool stuff...
If you want to learn Objective-C 2.0 to write ... Clair begins with a practical refresher on C and object-oriented programming and walks you through creating your first Objective-C program with Xcode.
本文档就是关于第一部分--面向对象的程序语言 Objective-C 的介绍, 介绍了程序语言 本身以及它的运行环境, 为进一步去学习第二部分-- Mac OS X Objective-C 应用开发框架 库(Cocoa) 打下基础。 你能通过学习 ...
Cocoa编程经典的入门书籍,图文讲解,易于学习