iphone开发学习笔记二

来源:未知 责任编辑:智问网络 发表时间:2013-11-10 20:13 点击:

用于Mac OS 和 iphone 的开发环境主要是XCode 和 Interface Builder ,在XCode 3.0之前,XCode 和 Interface Builder是两个相对独立的应用,一个主要用来编写代码,一个主要用来设计用户界面,从XCode 4.0开始 Interface Builder被集成在XCode中。
再谈谈用于Mac OS 和 iphone 的开发的开发语言 Objective C,这里也不想比较Objective C和其它语言C#,Java的优劣点,不同的人有不同的观点。根据Apple的文档说 Objective C最大的一个特点是动态性能,Dynamic Message Dispacth, Dynamic Binding等等。
这里主要给以熟悉C++,Java,C#语言的开发人员一些提醒,Objective C也是一种面向对象的编程语言,但是它和它的堂兄C++很不相同,更大程序上更象C语言。
1. Objective C仍然大量使用指针,而且很多情况下需要手工管理内存。尽管Mac OS上提供了 Garbage collector, 但在iphone不支持,即使以后支持Garbage collector,Apple 仍然建议使用手机管理内存,理由是更有效。这一点可能对于以前用Java,C#等具有自动内存管理的人可能不同意,毕竟手动管理内存是一个繁琐并且容易造成内存泄露。而硬件功能的越来越强大,完全可以弥补自动内存管理带来的效率问题。
2. Objective C严格意义上讲没有Constructor,但习惯上将以init开头的方法(消息)作为构造函数。dealloc 为析构函数。用于释放内存(常常用于释放类变量等)。
3. Objective C 的方法称为消息,这也是一个Objective C 一个显著特证,如果你看到一个代码中有类似
[object message] 的代码,基本上可以判断这是一个Objective C代码。
同样的代码在Java 中
int age= person.getAge();
而在Objective C 中
NSInteger age=[person getAge];
如果带参数,开始更不太习惯Objective C的语法:-)。
4. Objective C 中没有Namespace 的概念,为避免命名冲突,一般使用前缀,比如 NSString, NS为前缀。可以使用功能或是公司名缩写作为前缀。
5. 对于代码的注释,Objective C 一般还是使用Docxgen来生成代码的文档。
6. Cocoa 和 Cocoa Touch 中提供了Foundation Framework, AppKit, UIKit 接口等使用了Objective C 面向对象的对象接口,但相当一部分API依然是使用C接口,比如Quatz 二维图形库。又比如我打算在Objectivc C中找类似Java 库中 Math类,找了好一会儿没找到,Google 一下,居然还在math.h 和10年前用C 一样 :-)
最后借用Star trek voyager中一句台词“When in Colletive,adapt”,如果要开发iphone应用或是Mac 应用,就要适应Objective C ,时间长了就习惯了。而且基本上凡是Java中有的面向对象的概念 ,Objective C也支持,只是以不同的方式来实现的。
Apple的文档和教程写得非常好,这也可以弥补一些开发环境上的不便之处。

 


摘自 引路蜂移动软件

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Lexical or Preprocessor Issue 'xxx.h
    • ios学习笔记(二)xcode 4.3.2下实现基本交互
    • ios版本的helloworld
    • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
    • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
    • IOS类似iphone通讯录TableView的完整demo【附源码】
    • UITableView一些方法
    • [iPhone中级]iPhone团购信息客户端的开发 (二)
    • 如何为Iphone应用创建启动界面
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1