Objective-C 简介
很少有人会想到 Objective-C 历史悠久,并且它实际上影响了很多其他的编程技术。比如, Java 编程语言和 Objective-C 就有很多共同点。原因就是在 Objective-C 的早期,NeXT 和 Sun Microsystems 合作开发 OpenStep 平台,他们用来开发这种技术的语言就是 Objective-C。当 NeXT 计算机的表现没有达到他们预期的要求时,该公司走向了失败,Sun 决定开发自己的语言和跨平 台开发包——Java。Java 工程师们都是谙熟 Objective-C 的,因为 Objective-C 是他们在使用 Java 之前首选的语言。后来他们就将 Objective-C 的一些较好的功能引入到了他们所开发的语言中。
Objective-C 现已成为了 Mac OS X 和 iPhone OS 上首选的开发语言。它已经发展成为了一种优 雅的解决方案,在纯静态语言和纯动态语言之间实现了平衡。它是少有的几种通常进行编译的语言, 不仅能从类似 C 和 C++的编译时语法检查受益,还能从负责处理动态对象类型的动态运行时受益。除了 Mac OS X 和 iPhone OS,Objective-C 在其他平台上也发展了一批追随者,可以在 Linux、 Windows 和其他支持 GNU 编译器的平台上开发应用。在 iPhone OS 上的使用增加了该语言的知名度并吸引了很多新的程序员。可以说 Objective-C 如今正在经历一次复兴——成千上万的开发 者正涌向该语言,使其成为了最热门的技术之一。
使用Xcode
Xcode 是一个加入苹果开发者计划就可以免费获得的优秀的 IDE。它默认支持 C、Objective-C、C++、Java 以及其他几种语言 。
● OC语言特点:
1、Objecive-C属于Smalltalk学派,其面向对象与C++面向对象编程力的Simula 67(一种早期面向对象语言)学派不同;
2、Objective-C 是ANSI C的超集,扩展了C 语言使它具备面向对象设计的能力,例如类、消息‘继承;同时在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法;
3、Objective-C可以实现底层系统编程,另一方面可以支持利用动态架构进行开发。
C++与OC同为面向对象设计语言,他们有很多相似的对象,但是由于两者属于不同的面向对象学派。因此两者之间的比较也乐此不疲。下面简要说说他们的区别:
1、继承:Objective-C与同Java和Smalltalk一样不支持多重继承,而C++语言支持多重继承(从侧面可以说明多重继承的效率不高);
2、函数调用:Objective-C通过互相传递消息实现函数调用,而C++直接进行函数调用
3、定型:Objective-C是动态定型(dynamicaly typed)。所以它的类库比C++要容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。而C++,对象的静态类型决定你是否可以发送消息给它。
4、接口:Objective-C采用protocol协议(非正式和正式)的形式来定义接口,而C++采用虚函数的形式来定义接口。
5、方法重载:c++中允许两个方法的名字相同,参数个数相同,但是参数类型不同,以及不同的返回值类型。而OC中不允许同一个类中两个方法有相同的名字,参数个数相同,参数类型不同。
Objective-C 简介的更多相关文章
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- Objective-C(一简介)
Objective-C简介 通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言.它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统, ...
- ios 多线程开发(一)简介
简介 线程是在一个程序中并发的执行代码的方法之一.虽然有一些新的技术(operations, GCD)提供了更先进高效的并发实现,OS X和iOS同时也提供了创建和维护线程的接口. 这里将要介绍线程相 ...
- Objective C Runtime 开发介绍
简介 Objective c 语言尽可能的把决定从编译推迟到链接到运行时.只要可能,它就会动态的处理事情.这就意味着它不仅仅需要一个编译器,也需要一个运行时系统来执行变异好的代码.运行时系统就好像是O ...
- APP自动化框架LazyAndroid使用手册(1)--框架简介
作者:cryanimal QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试 ...
- 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...
- Appium简介
Appium简介 Appium is an open source test automation framework for use with native, hybrid and mobile w ...
- CMarkup成员方法简介 (转)
CMarkup成员方法简介 (转) 转自:http://blog.csdn.net/magictong/article/details/6669837翻译:magictong(童磊)2011年7月版权 ...
- 001.SQLServer高可用简介
一 SQLServer高可用集群相关概念 1.1 Windows故障转移群集 Windows故障转移群集是由多个服务器组成的共同提供某高可用服务,该服务用于防止单台服务器故障导致服务失效.故障转移群集 ...
- python的简介与简单使用
简介: python的诞生 创始人:Guido van Rossum(荷兰人:吉多) 时间:1989年 特点: 1.简单明了,容易上手 2.多平台,`全面发展,平衡发展, 3.胶水语言,有大量的库 其 ...
随机推荐
- deeplearningbook-chinese
https://exacity.github.io/deeplearningbook-chinese/
- Hbase总结(五)-hbase常识及habse适合什么场景
当我们对于数据结构字段不够确定或杂乱无章非常难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,假设我们使用的传统数据库,肯定留有多余的字段.10个不行,20个,可是这个严重影响了质量. 而 ...
- 使用java中replaceAll方法替换字符串中的反斜杠
今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: java.util.regex.Pa ...
- ASIHttpRequest release 包无法发出请求
ASIHttpRequest 在 Release 模式下,Optimize 后会导致发不出请求. 解决方案: 去掉这两个文件的 Optimization:ASIFormDataRequest.m AS ...
- jquery.timers使用说明
jQuery Timers提供了三个函式 1. everyTime(时间间隔, [定时器名称], 函式名称, [次数限制], [等待函式程序完成])2. oneTime(时间间隔, [定时器名称], ...
- 寂静之地百度云在线观看迅雷下载A Quiet Place高清BT下载
原名:A Quiet Place 地区:美国 语言:英语 / 美国手语 首播:2018-05-18(中国大陆) / 2018-03-09(西南偏南电影节) / 2018-04-06(美国) 电视台 ...
- 使用DDMS中的内存监测工具Heap来优化内存
最近在做一个照片墙的应用,涉及到很多知识,其中难点在于如何应对数量庞大的图片,这就涉及到内存管理的知识了.今天介绍的工具是DDMS中自带的Heap,它可以显示出当前引用占用的内存,剩余的内存等信息.下 ...
- 关于CSS中的float可能出现的小问题
关于CSS中的float可能出现的小问题 前言:最近学习CSS的float所遇到点小问题,然后顺便分享给大家. 一.什么是CSS以及float (一) CSS概述 CSS是层叠样式表(英文全称:Cas ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- 用Eclipse开发Androd应用程序时,自带虚机模拟器太慢了,怎么办
问:用Eclipse开发Androd应用程序时,系统自带模拟器太慢了,怎么办? 答:用Genymotin