热门搜索: win10 小米手机 拼多多
首页 > 软件 > objective-c基础教程

objective-c基础教程

2022-12-02 13:59 来源:网友投稿 浏览:1000
导读:objective-c基础教程--Objective-C:C的超集,Objective-Objective-C是C语言的严格超集--任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的...

  objective-c基础教程很多朋友关注的话题,Objective-C 是一种简单的计算机语言,设计为可以支持真正的面向对象编程。

  Objective-C 通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的 ANSI C 语言。类的语法和设计主要是基于 Smalltalk,最早的面向对象编程语言之一。

  如果你以前使用过其他面向对象编程语言,那么下面的信息可以帮助你学习 Objective-C 的基本语法。许多传统的面向对象概念,例如封装,继承以及多态,在 Objective-C 中都有所体现。这里有一些重要的不同,但是这些不同在这文章会表现出来,而且如果你需要还有更多详细的信息存在。

  如果你从来没有使用任何编程语言编过程序,那么你至少需要在开始之前,对相关概念进行一些基础的了解。对象的使用和对象对象架构是 iPhone 程序设计的基础,理解他们如何交互对创建你的程序非常重要。想了解面向对象概念的,请参看使用 Objective-C 进行面向对象编程。

objective-c基础教程--Objective-C:C的超集

  Objective-Objective-C是C语言的严格超集--任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的原意就是在C语言主体上加入面向对象的特性。

objective-c基础教程--Objective-C代码的文件扩展名

  当你需要在源代码中包含头文件的时候,你可以使用标准的 #include 编译选项,但是 Objective-C 提供了更好的方法。#import 选项和 #include 选项完全相同,只是它可以确保相同的文件只会被包含一次。Objective-C 的例子和文档都倾向于使用 #import,你的代码也应该是这样的。

objective-c基础教程--语法

  Objective-C的面向对象语法源于Smalltalk消息传递风格。所有其他非面向对象的语法,包括变量类型,预处理器(preprocessing),流程控制,函数声明与调用皆与C语言完全一致。但有些C语言语法合法代码在objective-c中表达的意思不一定相同,比如某些布尔表达式,在C语言中返回值为true,但在Objective-C若与yes直接相比较,函数将会出错,因为在Objective-C中yes的值只表示为1。

  第一个 Objective-C 程序,基于Xcode 4.3.1:

objective-c基础教程--消息传递

  Objective-C最大的特色是承自Smalltalk的消息传递模型(message passing),此机制与今日C++式之主流风格差异甚大。Objective-C里,与其说对象互相调用方法,不如说对象之间互相传递消息更为精确。此二种风格的主要差异在于调用方法/消息传递这个动作。C++里类别与方法的关系严格清楚,一个方法必定属于一个类别,而且在编译时(compile time)就已经紧密绑定,不可能调用一个不存在类别里的方法。但在Objective-C,类别与消息的关系比较松散,调用方法视为对对象发送消息,所有方法都被视为对消息的回应。所有消息处理直到运行时(runtime)才会动态决定,并交由类别自行决定如何处理收到的消息。也就是说,一个类别不保证一定会回应收到的消息,如果类别收到了一个无法处理的消息,程序只会抛出异常,不会出错或崩溃。

  C++里,送一个消息给对象(或者说调用一个方法)的语法如下:

  典型的C++意义解读是"调用car类别的fly方法"。若car类别里头没有定义fly方法,那编译肯定不会通过。但是Objective-C里,我们应当解读为"发提交一个fly的消息给car对象",fly是消息,而car是消息的接收者。car收到消息后会决定如何回应这个消息,若car类别内定义有fly方法就运行方法内之代码,若car内不存在fly方法,则程序依旧可以通过编译,运行期则抛出异常。

  此二种风格各有优劣。C++强制要求所有的方法都必须有对应的动作,且编译期绑定使得函数调用非常快速。缺点是仅能借由virtual关键字提供有限的动态绑定能力。Objective-C天生即具备鸭子类型之动态绑定能力,因为运行期才处理消息,允许发送未知消息给对象。可以送消息给整个对象集合而不需要一一检查每个对象的类型,也具备消息转送机制。同时空对象nil接受消息后默认为不做事,所以送消息给nil也不用担心程序崩溃。

objective-c基础教程--字符串

  作为C语言的超集,Objective-C 支持 C 语言字符串方面的约定。也就是说,单个字符被单引号包括,字符串被双引号包括。然而,大多数Objective-C通常不使用C语言风格的字符串。反之,大多数框架把字符串传递给NSString对象。NSString类提供了字符串的类包装,包含了所有你期望的优点,包括对保存任意长度字符串的内建内存管理机制,支持Unicode,printf风格的格式化工具,等等。因为这种字符串使用的非常频繁,Objective-C提供了一个助记符可以方便地从常量值创建NSString对象。要使用这个助记符,你需要做的全部事情,是在普通的双引号字符串前放置一个@符号,如下面的例子所示:

objective-c基础教程--类

  如同所有其他的面向对象语言,类是 Objective-C 用来封装数据,以及操作数据的行为的基础结构。对象就是类的运行期间实例,它包含了类声明的实例变量自己的内存拷贝,以及类成员的指针。Objective-C 的类规格说明包含了两个部分:定义(interface)与实现(implementation)。定义(interface)部分包含了类声明和实例变量的定义,以及类相关的方法。实现(implementation)部分包含了类方法的实际代码。

  下图展现了声明一个叫做 MyClass 的类的语法,这个类继承自 NSObject 基础类。类声明总是由 @interface 编译选项开始,由 @end 编译选项结束。类名之后的(用冒号分隔的)是父类的名字。类的实例(或者成员)变量声明在被大括号包含的代码块中。实例变量块后面就是类声明的方法的列表。每个实例变量和方法声明都以分号结尾。

  类的定义文件遵循C语言之惯例以.h为后缀,实现文件以.m为后缀。

  类声明图

objective-c基础教程--Interface

  定义部分,清楚定义了类的名称、数据成员和方法。 以关键字@interface作为开始,@end作为结束。

  方法前面的 +/- 号代表函数的类型:加号(+)代表类方法(class method),不需要实例就可以调用,与C++ 的静态函数(static member function)相似。减号(-)即是一般的实例方法(instance method)。

  这里提供了一份意义相近的C++语法对照,如下:

  Objective-C定义一个新的方法时,名称内的冒号(:)代表参数传递,不同于C语言以数学函数的括号来传递参数。Objective-C方法使得参数可以夹杂于名称中间,不必全部附缀于方法名称的尾端,可以提高程序可读性。设定颜色RGB值的方法为例:

  这个方法的签名是setColorToRed:Green:Blue:。每个冒号后面都带着一个float类别的参数,分别代表红,绿,蓝三色。

  以上就是简单的objective-c基础教程介绍,希望对大家有所帮助。

声明:时财网仅提供信息发布平台,如若内容有误或侵权请通过反馈通道提交信息,我们将按照规定及时处理。
相关阅读

热门推荐

  • 360手机助手怎么连接手机?第一步:请先将将手机数据线连接至电脑,保证手机与电脑是连接状态,之后打开360手机助手界面。第二步:点击确定手机屏幕上显示的“打开USB”调试。第三步:安装设备适合手机机型的驱动程序软件,耐心等待中。第四步:OK,手机已连... 更多
    --2022-12-13
  • 360手机助手目前还不支持阿里云系统。所有提供信息资源,全部经过360安全检测中心的审核认证,绿色无毒,安全无忧。360手机助手帮助用户用最省流量、最快捷、最方便、最安全的方式获取网络资源。... 更多
    --2022-12-13
  • 如何设置开机密码?方法一:1、依次点击“开始”--“设置”--“控制面板”--“用户账户”2、这里你会看到2个或者更多的账户,一般默认的账户是administrator。双击打开,选择“创建密码”3、到这一步你应该知道该怎么操作了吧! 输入两次相同的密码点击创建密码... 更多
    --2022-12-02
  • 手机首次连接电脑助手下载驱动的驱动所在文件夹在运行中输入%appdata%,打开后在Roaming\360mobilemgr的文件夹里。360手机助手在Windows系统的电脑上使用,360手机助手支持安装 了Android操作系统的智能手机(android 1.6及以上版本均可支持),Ophone2.0及以上... 更多
    --2022-12-13
  • transmate:ransmate翻译软件作为一个受大众欢迎,评价最高,最具发展,涉猎众多领域的一个翻译软件,凭借其强大的语料库,术语库,集系统管理,教学管理,翻译实训于一体,综合项目管理、原文预览、伪翻译、预翻译、排版、翻译记忆、拼写检查、低错检查、在... 更多
    --2022-12-02
  • 下载腾讯的手机管家也是可以的拿来清理微信和QQ的,或者不下载也行,清理微信和QQ的方法,在微信的设置里,通用里,有清理储存,点进去清理QQ的也是在设置里找到清理,或者手机管家里腾讯的那个里面也有清理的。 更多
    --2022-11-08
  • 手机导航哪个好用?百度毕竟是全球最大的中文搜索引擎,他们家公司开发的百度地图产品也还是不错的。也支持离线地图、语音导航、步行导航、路况信息等功能。 手机导航哪个好用?谷歌地图(英文名Google Maps),支持220个国家全面精确的地图,可为驾车、步行... 更多
    --2022-12-02
  • 如何卸载软件?1、单击开始-控制面板-2、单击程序功能。3、如果想卸载其它软件的话就单击哪个软件就可以了,我就以暴风影音为卸载。其实暴影音很好的很多东西可以看,我就举例子而以。4、选择直接卸载-下一步。... 更多
    --2022-12-02
  • desktop.ini是什么文件?专业的说,Desktop.ini文件是系统可识别的一个文件,其作用是存储用户对文件夹的个性设置,比如用户更改了文件夹图标、背景颜色等等,其配置信息都会存入到这个文件夹的desktop.ini文件中,用户可以使用记事本的方式,打开desktop.ini... 更多
    --2022-12-02
  • 大写的一到十怎么写?壹(一)(1)、贰(二)(2)、叁(三)(3)、肆(四)(4)、伍(五)(5)、陆(六)(6)、柒(七)(7)、捌(八)(8)、玖(九)(9)、零(零)(0)、拾(十)(10)、佰(百)(100)、仟(千)(1000)、万(万)(10000)、亿(亿)(100000000)。... 更多
    --2022-12-02

热门标签  给您最快捷的浏览方式!

  • 看电影卡怎么办

    看电影比我们一般的应用都更占用网络宽带,一般如果普通在线观看电影的话,一般建议1M以上的宽带条件才不会卡,如果是看高清电视的话,至少要2M以上的宽带才可以满足流畅播放需求。如果在使用网络电视软件或者在网站上在线播放电影卡的话,建议您先检查网速。...

    2022-12-02
  • 360手机助手曾连接成功,再次连接失败怎么办

    360手机助手曾连接成功,再次连接失败怎么办?部分品牌的手机,在从电脑上拔下后,会自动把“USB调试”开关关闭,导致再次与360手机助手连接时失败。这时,用户只需再次打开“USB调试”模式即可。...

    2022-12-13
  • 手机导航哪个好用

    手机导航哪个好用?百度毕竟是全球最大的中文搜索引擎,他们家公司开发的百度地图产品也还是不错的。也支持离线地图、语音导航、步行导航、路况信息等功能。 手机导航哪个好用?谷歌地图(英文名Google Maps),支持220个国家全面精确的地图,可为驾车、步行...

    2022-12-02
  • cookie是什么

    很多朋友并不了解cookie是什么,Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265...

    2022-12-02
  • 100以内的质数

    100以内的质数有哪些?2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97,共计25个。...

    2022-12-02
你已经赞过了