iPhone 4:object-c
来源:互联网 发布:red hat linux 6.5 编辑:程序博客网 时间:2024/05/07 22:41
出处:http://www.flyblog.info/catprogramming/143.html
评论:这哥们写的不错
写在前面, 之所以想写点Objective-C相关知识的文章,是因为近1年都在从事苹果及iPhone的开发,其中也走过不少弯路,也从其他网友那获得了很多帮助,所以想把自己的学习心得写出来,以便有需要的朋友作为参考。以下内容均假定阅读者有一定的软件开发经验。
如果想在苹果Mac OSX系统进行开发,Objective-C是最重要的开发语言,现在Apple已经把开发的重点放在了基于Cocoa库的图形界面, 支持C++的Carbon图形库已经让出了主导地位, 而Cocoa库正是应用Objective-C语言开发的。 如果你有C/C++的编程经验, 那么在进行Objective-C的开发将会容易些,因为Objective-C本身就是C/c++的超集, 它包含C/C++的所有特性和支持标准C库, 但其语法本身更优美 简洁,更能体现OO思想也就是面向对象。
在学习Objective-C之前先把Objective-C(以下会以O-C代替)、Cocoa、Carbon以及XCode等几个名词的概念搞清楚, Objective-C是开发语言,前面说过,O-C是c/c++的超集合, Cocoa是在苹果系统上O-C实现的图形开发库相当于windows系统的win32 SDK和MFC, Carbon是早期苹果操作系统上的C/C++图形库也相当于MFC,XCode是个开发集成环境,相当于windows系统上的Visual Stdio系列。
以上介绍了苹果系统开发的基本概念,现在介绍一些Objective-C基础知识,
- 变量类型
Objective-C支持C的所有类型,也就是说char,unsigned char,int,long,float,double等均可使用;
结构类型 如日期的结构定义?View Code OBJC123456
struct Date{unsigned char day;unsigned char month;unsigned char year;};
其它类型比如枚举、及预定义变量均和c语言用法相同
- 文件引用、类型导入
Objective-C中依然可以使用#include来引入其他文件,不过推荐使用#import来导入其它类型,官方文档介绍说这样可以减少出错的几率 - id类型
id是Objective-C中的特殊类型, 他指向一个对象,你可以理解为c中的void* - 字符串
Objective-C中可以有c类型的字符串,比如”string”,也可以用NSString类型字符串,一般用@”string”表示, 其中‘@’是将字符串”string”转换为NSString类型
以上是一些基本的语言知识, 其中大多数都和c/c++相同,目前为止除了#import之外,其它的内容对于C/C++开发人员来说都非常熟悉了。
这里先从如何调用类的方法开始说起, 看下面的代码
12
[object method];[object methodWithParamter:param];
没错,Objective-C就是这样进行方法调用的,与C/c++不同的是 ‘[]’的使用, [] 表示对一个类对象的方法进行调用,其中object是类对象, method就是所调用的方法, 你可以调用带有参数的方法,不过在方法名称和参数之间要保留 ‘:’ 来告知编译器如何编译。
方法也可以有返回值,如下
12
result = [object methodWithRetValue];result = [object methodwithPrameterAndRetValue:param];
你也可以这样调用类的方法,比如NSString
1
NSString* string = [NSString string];
这里方法string就是NSString类特殊方法,类似于c++中的静态成员函数
多重方法调用,比如C++ 中的 result = object1.function1 ( object2.function2() );在O-C中可以这样来实现
1
result = [object1 function1:[object2 function2]];
代码中 最外层[]表示object1 调用function1方法,里面的[]表示object2 调用function2所得的结果作为function1的参数传入
多参数方法调用,比如c/c++中的 object.function(arg1, arg2,arg3 );在O-C中就该是这样的
首先是方法申明
1
-(void) function:(int)arg1 secondArg:(float) arg2 thirdArg:(NSString*)arg3;
调用时就是这样的
1
[object function:arg1 secondArg:arg2 thirdArg:arg3];
也就是方法名称后面直接跟参数列表, 其中第一个参数不需要别名,其它参数必须设置别名,O-C使用参数别名还确定所调用参数的,这样编译器才能正确解释,参数之间用1-N个空格分开。
待续。。。
- iPhone 4:object-c
- IPhone ------Object-C开发
- iPhone Object-c Base64编码
- iPhone Object-c Base64编码
- 【iphone】Object-c 属性说明
- iPhone 程式設計入門(6) Object-C 摘要
- iphone ios Object-C 中的Selector 概念
- iPhone 程式設計入門(4)Apple 為何用 Object-C 開發軟件
- iPhone 程式设计入门(1)认识一下 Object-C
- iphone/Mac Object-C内存管理教程和原理剖析
- iphone开发之object c基础一定义接口
- iPhone开发之深入浅出Object-C之消息
- iphone(object-c) 内存管理(1)
- ios,object-c,iphone, NSCharacterSet 去除NSString中的空格
- iPhone开发之深入浅出Object-C之消息
- 方法整理:4.后台运行GPS (IOS iPhone Object-C)
- IOS 后台运行GPS (IOS iPhone Object-C)
- iPhone开发之深入浅出Object-C之消息
- JAVA多态与类型转化分析
- ”分享“功能
- Eclipse下如何获得一个插件的安装目录 getBundle
- 负载均衡
- linux shell 获得以前日期
- iPhone 4:object-c
- 在MFC中实现自己的类厂
- jquery 子窗口操作父窗口。
- latex 花体F
- Mysql中的MVCC
- eWebEditor不能正常使用的解决办法
- mysql 学习笔记(3)
- 第五章扩充内核后的代码部署小结
- 彷徨--呐喊