电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

ObjectiveC语法快速参考

8页
  • 卖家[上传人]:飞***
  • 文档编号:45193824
  • 上传时间:2018-06-15
  • 文档格式:DOCX
  • 文档大小:30.08KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、大部分有一点其他平台开发基础的初学者看到 XCode,第一感想是磨拳擦掌,看到 Interface Builder 之后,第一感想是跃跃欲试,而看到 Objective-C 的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。如果你和我一样,对苹果相关的开发:Mac OSX 或是 iPhone 有兴趣,但是第一时间看到 Objective-C 就会头疼并伴有发烧症状的话,疗效比较好的快速治疗方法是阅读本文。大概花二十分钟左右,而且绝不无聊的时间,你就会对 Objective-C 有那么一点点了解,至少读读例子不会那么头疼了。不过假定你要有那么一点点 c+、c#或是 java 的基础,至少能看到 c+、c#或是 java 的源码,能够大致明白说得是什么。这篇文章不是一篇科技文章,希望你也不要把它当做科技文章来读。文章非常不严谨,但是我相信你能看得懂。一、一、XCode、Objective-C、Cocoa 说的是几样东西?说的是几样东西?答案:三样东西。答案:三样东西。XCode:你可以把它看成是一个开发环境,就好像 Visual Studio 或者 Netbeans 或者 Shar

      2、pDevelop 一样的玩意。你可以将 Interface Builder 认为是 Visual Studio 中用来画界面的那部分功能单独提出来的程序。Objective-C:这是一种语言,就好像 c+是一种语言,Java 是一种语言,c#是一种语言,莺歌历史也是一种语言一样。Cocoa:是一大堆函数库,就好像 MFC、.NET、Swing 这类玩意,人家已经写好了一堆现成的东西,你只要知道怎么用就可以了。有些人会比较容易混淆 Objective-C 和 Cocoa,就好像有些人会混淆 c#和.NET 一样。这两个东西真的是两个不一样的东西。二、二、Objective-C 是什么?是什么?你可以把它认为是语法稍稍有点不一样的 c 语言。虽然第一眼望上去你可能会认为它是火星语,和你所认知的任何一种语言都不一样。先简单列出一点差别:问题一:我在程序中看到大量的减号、中括号和 NS*这种东西,他们是什么玩意儿?1 减号(或者加号)减号(或者加号)减号表示一个函数、或者方法、或者消息的开始,怎么说都行。比如 c#中,一个方法的写法可能是:private void hello(bool ish

      3、ello)/OOXX用 Objective-C 写出来就是-(void) hello:(BOOL)ishello/OOXX挺好懂的吧?不过在 Objective-C 里面没有 public 和 private 的概念,你可以认为全是 public。而用加号的意思就是其他函数可以直接调用这个类中的这个函数,而不用创建这个类的实例。(加好表示静态的成员函数)2 中括号中括号中括号可以认为是如何调用你刚才写的这个方法,通常在 Objective-C 里说“消息”。(中括号在 object c 中表示方法调用 )比如 C#里你可以这么写:this.hello(true);在 Objective-C 里,就要写成:self hello:YES;3 NS*老乔当年被人挤兑出苹果,自立门户的时候做了个公司叫做 NextStep,里面这一整套开发包很是让一些科学家们喜欢,而现在 Mac OS 用的就是 NextStep 这一套函数库。这些开发 NextStep 的人们比较自恋地把函数库里面所有的类都用 NextStep 的缩写打头命名,也就是NS*了。比较常见的比如:NSLogNSStringNSIn

      4、tegerNSURLNSImage你会经常看到一些教学里面会用到:NSLog (“%d“,myInt);这句话主要是在 console 里面跟踪使用,你会在 console 里面看到 myInt 的值(在 XCode 里面运行的时候打开 dbg 窗口即可看到)。而我们在其他开发环境里面可能会比较习惯使用 MessageBox 这种方式进行调试。你还可以看到其他名字打头的一些类,比如 CF、CA、CG、UI 等等,比如CFStringTokenizer 这是个分词的东东CALayer 这表示 Core Animation 的层CGPoint 这表示一个点UIImage 这表示 iPhone 里面的图片CF 说的是 Core Foundation,CA 说的是 Core Animation,CG 说的是 Core Graphics,UI 说的是 iPhone 的User Interface还有很多别的,等你自己去发掘了。问题二、#import、interface 这类玩意说的是什么?1、#import 你可以把它认为是#include,一样的。但是最好用#import,记住这个就行了。2、

      5、interface 等等等等比如你在 c#中写一个抓孩子类的定义:public class Kids : Systemprivate string kidName=”mykid”;private string kidAge=“15”;private bool isCaughtKid()return true;当然,上面的写法不一定对,就是个用于看语法的举例。在 Objective-C 里就得这么写:先写一个 kids.h 文件定义这个类:interface Kids: NSObject NSString *kidName;NSString *kidAge;-(BOOL) isCaughtKid;end再写一个 kids.m 文件实现:#import “kids.h”implementation Kids-(void) init kidName=”mykid”;kidAge=”15”;-(BOOL) isCaughtKidreturn YES;end这个写法也不一定对,主要是看看语法就行了。-_-b问题三、一个方法如何传递多个参数?一个方法可以包含多个参数,不过后面的参数都要写名字。多个

      6、参数的写法多个参数的写法(方法的数据类型) 函数名: (参数 1 数据类型) 参数 1 的数值的名字 参数 2 的名字: (参数 2 数据类型) 参数2 值的名字 . ;举个例子,一个方法的定义:-(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName;实现这个函数的时候:-(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName大儿子 = myOldestKidName;二儿子 = mySecondOldestKidName;三儿子 = myThirdOldestKidName;调用的时候:Kids *myKids = Kids alloc init;myKids se

      7、tKids: ”张大力” secondKid: ”张二力” thirdKid: ”张小力”;而如果你用 c#写这个方法,大致的写法可能是public void setKids( string myOldestKidName, string mySecondOldestKidName, string myThirdOldestKidName)调用的时候大概的写法可能是:Kids myKids = new Kids();myKids.setKids (“张大力”, “张二力”, “张小力”);明白了吧?其实不怎么难看懂。基本上,如果你能了解下面这段代码的转换关系,你 Objective-C 的语法也就懂了八成了:MyClass alloc init:foo bar autorelease;转换成 C#或者 Java 的语法也就是:MyClass.alloc().init(foo.bar().autorelease();三、其他的一些东西三、其他的一些东西其实这些本站之前的文章有所提及,这里再详细解释一下。1、 id:Objective-C 有一种比较特殊的数据类型是 id。你可以把它理解为

      8、“随便”。( 等价 c 中的 void * )在在 Objective-C 里,一切东西都是指针形式保存,你获取到的就是这个对象在内存的位置。那么里,一切东西都是指针形式保存,你获取到的就是这个对象在内存的位置。那么 id 就是你就是你知道这个位置知道这个位置,但是不知道里面是啥的时候的写法。2、 同一个数组可以保存不同的对象:同一个数组可以保存不同的对象:比如一个数组 NSArray,这种数组里面可以保存各种不同的对象,比如这个数组里:myArray -|0: (float) 234.33f1: ”我是个好人”2: (NSImage *) (俺的美图)3: ”我真的是好人”这是一个由 4 个东西组成的数组,这个数组包括一个浮点数,两个字符串和一个图片。3、BOOL,YES,NO:你可以认为 YES 表示 C#或者 Java 里的 true,NO 表示 false。而实际上 YES 是 1,NO 是 0,BOOL 本身就是个 char。4、IBOutlet、IBAction 是啥玩意,总能看到。是啥玩意,总能看到。这两个东西其实在语法中没有太大的作用。如果你希望在 Interface

      9、Builder 中能看到这个控件对象,那么在定义的时候前面加上 IBOutlet,在 IB 里就能看到这个对象的 outlet,如果你希望在 Interface Builder 里控制某个对象执行某些动作,就在方法前面加上(IBAction)。而这两个东西实际上和 void 是一样的。5、nil。Objective-C 里的 NULL(空)就这么写,表示空指针。6、为什么是、为什么是”字符串字符串”而不是而不是”字符串字符串”字符串” 是 C 的字符串,”字符串“ 是把 C 的字符串转成 NSString 的一个简写.在需要 NSString 的地方才需要这个转化,例如 NSLog 里面.在需要 C string 的地方,还是用”字符串”的.另外,”“ 这个转换是不支持中文的.例如 NSLog(”字符串”); 是一定输出不了中文的.四、四、Objective-C 2.0Objective-C 2.0 是 Leopard 新增加的一门语言,其实和原来的 Objective-C 是一样的。主要是增加了属性。详细的内容这里不写了,可以参阅 Allen Dang 的这篇文章,写的很明白。http:/ Objective-C 的代码和怎么开始学 Objective-C 吧。1、记住 Objective-C 就是 C,不是火星语,这个很关键。2、记住你自己看不懂不表示脑子迟钝,大部分人第一次看 Objective-C 的代码可能比你还要迟钝。3、把 CocoaC 加入收藏夹,看不明白代码就来再看一遍这篇开宗明义的好文。4、文档很关键,当你看不懂某些东西说的是什么的时候,先查 Cocoachina,再看英文文档里面的 API 说明,尤其这个类是以 NS 开头的时候。再不行就去 google 搜,直接把你要查的方法贴进 google,通常能找到不少人也在问同样的问题,自然也有热心人活雷锋帮助回答。5、可以看 hello world 例子,但是不能总看,看多了真

      《ObjectiveC语法快速参考》由会员飞***分享,可在线阅读,更多相关《ObjectiveC语法快速参考》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 人教版一年级下册数学第二单元20以内的退位减法测试卷精品【考试直接用】

    人教版一年级下册数学第二单元20以内的退位减法测试卷精品【考试直接用】

  • 人教版一年级下册数学第二单元20以内的退位减法测试卷(实用)word版

    人教版一年级下册数学第二单元20以内的退位减法测试卷(实用)word版

  • 人教版一年级下册数学第二单元20以内的退位减法测试卷及答案(夺冠)

    人教版一年级下册数学第二单元20以内的退位减法测试卷及答案(夺冠)

  • 人教版一年级下册数学第二单元20以内的退位减法测试卷(典型题)

    人教版一年级下册数学第二单元20以内的退位减法测试卷(典型题)

  • 人教版一年级下册数学第二单元20以内的退位减法测试卷精品(a卷)

    人教版一年级下册数学第二单元20以内的退位减法测试卷精品(a卷)

  • 人教版一年级下册数学第二单元20以内的退位减法测试卷及答案【精品】

    人教版一年级下册数学第二单元20以内的退位减法测试卷及答案【精品】

  • 部编版二年级上册道德与法治期中测试卷 (考试直接用)

    部编版二年级上册道德与法治期中测试卷 (考试直接用)

  • 部编版二年级上册道德与法治期中测试卷 带答案(培优)

    部编版二年级上册道德与法治期中测试卷 带答案(培优)

  • 部编版二年级上册道德与法治期中测试卷 含答案(精练)

    部编版二年级上册道德与法治期中测试卷 含答案(精练)

  • 部编版二年级上册道德与法治期中测试卷 及答案【各地真题】

    部编版二年级上册道德与法治期中测试卷 及答案【各地真题】

  • 部编版二年级上册道德与法治期中测试卷 及完整答案【名校卷 】

    部编版二年级上册道德与法治期中测试卷 及完整答案【名校卷 】

  • 部编版二年级上册道德与法治期中测试卷 【考点精练】

    部编版二年级上册道德与法治期中测试卷 【考点精练】

  • 部编版三年级上册道德与法治期末测试卷 (重点)

    部编版三年级上册道德与法治期末测试卷 (重点)

  • 部编版三年级上册道德与法治期末测试卷 (模拟题)word版

    部编版三年级上册道德与法治期末测试卷 (模拟题)word版

  • 部编版三年级上册道德与法治期末测试卷 附答案(预热题)

    部编版三年级上册道德与法治期末测试卷 附答案(预热题)

  • 部编版三年级上册道德与法治期末测试卷 附参考答案(b卷 )

    部编版三年级上册道德与法治期末测试卷 附参考答案(b卷 )

  • 部编版三年级上册道德与法治期末测试卷 答案下载

    部编版三年级上册道德与法治期末测试卷 答案下载

  • 部编版三年级上册道德与法治期末测试卷 含答案【夺分金卷 】

    部编版三年级上册道德与法治期末测试卷 含答案【夺分金卷 】

  • 部编版三年级上册道德与法治期末测试卷 含完整答案【网校专用】

    部编版三年级上册道德与法治期末测试卷 含完整答案【网校专用】

  • 部编版三年级上册道德与法治期末测试卷 及答案(最新)

    部编版三年级上册道德与法治期末测试卷 及答案(最新)

  • 点击查看更多
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.