Objectie-C基础知识加语法加总结

上传人:缘*** 文档编号:333287856 上传时间:2022-09-01 格式:PDF 页数:126 大小:10.36MB
返回 下载 相关 举报
Objectie-C基础知识加语法加总结_第1页
第1页 / 共126页
Objectie-C基础知识加语法加总结_第2页
第2页 / 共126页
Objectie-C基础知识加语法加总结_第3页
第3页 / 共126页
Objectie-C基础知识加语法加总结_第4页
第4页 / 共126页
Objectie-C基础知识加语法加总结_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《Objectie-C基础知识加语法加总结》由会员分享,可在线阅读,更多相关《Objectie-C基础知识加语法加总结(126页珍藏版)》请在金锄头文库上搜索。

1、第一部分Objective-C基础知识一、XCode Objective-C Cocoa说的是几样东西?答案:三样东西。XCode:你可以把它看成是一个开发环境,就好像Visual Studio或者Nelbeans或者SharpDevelop 一样的玩意。你可以将Interface Builder认为是Visual Studio中用来画界面的那部分功能单独提出来的程序。Objective-C:这是种语言,就好像C H是种语言,Java是种语言,c#是 种语言,莺歌历史也是-种语言一样。Cocoa:是一大堆函数库,就好像MFC、.NET、Swing这类玩意,人家已经写好了一堆现成的东西,你只要知

2、道怎么用就可以了。有些人会比较容易混淆Objective-C和 Cocoa,就好像有些人会混淆c#和.NET 样。这两个东西真的是两个不一样的东西。二、Objective-C是什么?你可以把它认为是语法稍稍仃点不一样的c 语言。虽然第一眼望上去你可能会认为它是火星语,和你所认知的任何 利语言都不样。先简单列出点差别:问 题 :我在程序中看到大量的减号、中括号和NS*这种东西,他们是什么玩意儿?1 减号(或者加号)减号表示 个函数、或者方法、或者消息的开始,怎么说都行。比如c#中,个方法的写法可能是:private void hello(bool ishello)(/ooxx)用Objectiv

3、e-C写出来就是-(void)hello:(BOOL)ishello/ooxx挺好懂的吧?不过在Objective-C里面没有public和private的概念,你可以认为全是publico而用加号的意思就是其他函数可以直接调用这个类中的这个函数,而不用创建这个类的实例。2中括号中括号可以认为是如何调用你刚才写的这个方法,通常在Objective-C里说“消息”。比如C#里你可以这么写:this.hello(true);在Objective-C里,就要写成:self hello:YES;3 NS*老乔当年被人挤兑出苹果,自立门户的时候做了个公司叫做NextStep,里面这一整套开发包很是让一些

4、科学家们喜欢,而现在Mac O S用的就是NextStep这一套函数库。这些开发NextStep的人们比较自恋地把函数库里面所有的类都用NextStep的缩写打头命名,也就是NS*了。比较常见的比如:NSLogNSStringNSIntegerNSURLNSImage你会经常看到一些教学里面会用到:NSLog(%cT,mylnt);这句话主要是在console里面跟踪使用,你会在console里面看到mylnt的值(在XCode里面运行的时候打开dbg窗口即可看到)。而我们在其他开发环境里而可能会比较习惯使用MessageBox这种方式进行调试。你还可以看到其他名字打头的些类,比如CF、CA、

5、CG、U I等等,比如CFStringTokenizer这是个分词的东东CALayer 这表示 Core Animation 的层CGPoint这表示一个点Ullmage这表示iPhone里面的图片CF 说的是 Core Foundation,CA 说的是 Core Animation,CG 说的是 Core Graphics,UI 说的是 iPhone的 User Interface还有很多别的,等你自己去发掘了。问题二、#import interface这类玩意说的是什么?1、#import你可以把它认为是include,一样的。但是最好用#import,记住这个就行了。2、interfa

6、ce 等等比如你在c#中写一个抓孩子类的定义:public class Kids:Systemprivate string kidName=mykid;private string kidAge=H15”;private bool isCaughtKid()return true;)当然,上面的写法不一定对,就是个用于看语法的举例。在 Objective-C里就得这么写:先写一个kids.h文件定义这个类:interface Kids:NSObject NSString*kidName;NSString*kidAge;)-(BOOL)isCaughtKid:;end再写一个kids.m文件实现

7、:#import kids.himplementation Kids-(void)init kidName=Mmykidn;kidAge=15”;)-(BOOL)isCaughtKid:return YES;)end这个写法也不一定对,主要是看看语法就行了。-_-b问题三、一个方法如何传递多个参数?一个方法可以包含多个参数,不过后面的参数都要写名字。多个参数的写法(方法的数据类型)函数名:(参数1数据类型)参数1 的数值的名字参数2 的名字:(参数2 数据类型)参数2 值的名字.;举个例子,一个方法的定义:-(void)setKids:(NSString*)myOldestKidName se

8、condKid:(NSString*)mySecondOldestKidNamethirdKid:(NSString*)myThirdOldestKidName;实现这个函数的时候:-(void)setKids:(NSString*)myOldestKidName secondKid:(NSString*)mySecondOldestKidNamethirdKid:(NSString*)myThirdOldestKidName大儿子=myOldestKidName;二儿子=mySecondOldestKidName;三儿子=myThirdOldestKidName;)调用的时候:Kids*my

9、Kids=Kids alloc init;myKids setKids:张大力 secondKid:张二力 thirdKid:”张小力而如果你用c#写这个方法,大致的写法可能是public void setKids(string myOldestKidName,string mySecondOldestKidName,stringmyThirdOldestKidName)()调用的时候大概的写法可能是:Kids myKids=new Kids();myKids.setKids(“张大力,张二力,“张小力”);明白了吧?其实不怎么难看懂。基本匕如果你能了解下面这段代码的转换关系,你 Object

10、ive-C的语法也就懂了八成了:MyClass alloc init:foo bar autorelease;转换成C#或者Java的语法也就是:My Class.alloc().init(foo.bar().autorelease();三、其他的一些东西其实这些本站之前的文章有所提及,这里再详细解释一下。1、id:Objective-C有一种比较特殊的数据类型是id。你可以把它理解为“随便工在 Objective-C里,一切东西都是指针形式保存,你获取到的就是这个对象在内存的位置。那么id就是你知道这个位置,但是不知道里面是啥的时候的写法。2、同一个数组可以保存不同的对象:比如个数组NSAr

11、ray,这种数组里面可以保存各种不同的对象,比如这个数组里:myArray C o n s o l e就可以看到NSLo g 的记录.NSLo g(l o g:%,m y St r i n g);NSLo g(nl o g:%f ,m y F l o at);NSLo g(nl o g:%i ”,m y l n t);图片显示不需要UI 资源绑定,在屏幕任意处显示图片。卜面的代码可以被用到任意Vi ew 里面。C G Rect m y l m ag eRect =C G Rect Mak e(0.Ofz O.Ofz 3 2 0.Ofz 1 0 9.Of);Ul l m ag eVi ew *m

12、 y I m ag e=Ul l m ag eVi ew al l o c i n i t Wi t h F r am e:m y l m ag eRect;m y l m ag e s et i m ag e:UI I m ag e i m ag eNam ed:m y I m ag e.p n g;m y l m ag e.o p aq u e=YE S;/ex p l i ci t l y o p aq u e f o r p er f o r m an ces el f.v i ew addSu bv i ew:m y l m ag e;m y l m ag e r el eas e;

13、应用程序边框大小我们应该使用bounds”来获得应用程序边框。不是用applicationFrame。applicationFrame”还包含了一个 2 0 像素的s t at u s bar e除非我们需要那额外的2 0 像素的s t at u s bar。Web viewUl WcbVi ew 类的调用.C G Rect w ebF r am e=C G Rect Mak e(0.0,0.0,3 2 0.0,4 6 0.0);Ul WebVi ew *w ebVi ew =Ul WebVi ew al l o c i n i t Wi t h F r am e:w ebF r am e;w

14、 ebVi ew s et B ack g r o u n dC o l o r:Ul C o l o r w h i t eC o l o r;NSSt r i n g *u r l A ddr es s =nh t t p:/w w w.g o o g l e.co m;NSURL*u r l =NSURL URLWi t h St r i n g:u r l A ddr es s;NSURLRequest*requestObj=NSURLRequest requestWithURL:url;webView loadRequest:requestObj;self addSubview:we

15、bView;webView release;显示网络激活状态图标在 iPhone的状态栏的左上方显示的个icon假如在旋转的话一,那就说明现在网络正在被使用。UIApplication*app=UIApplication sharedApplication;workActivitylndicatorVisible=YES;/to stop it,set this to NOAnimation:一组图片连续的显示一组图片NSArray*myImages=NSArray arrayWithObj ects:UIImage imageNamed:mylmagel.png,UIImage imageN

16、amed:myImage2.png,UIImage imageNamed:mylmage3.png,UIImage imageNamed:nmylmage4.gif,nil;UIImageview*myAnimatedView=UllmageView alloc;myAnimatedView initWithFrame:self bounds;myAnimatedView.animationimages=mylmages;myAnimatedView.animationDuration=0.25;/secondsmyAnimatedView.animationRepeatCount=0;/0=loops forevermyAnimatedView startAnimating;self addSubview:myAnimatedView;myAnimatedView release;Animation:移动一个对象让一个对象在屏幕上显示成一个移动轨迹。注意:这个Animation叫fke and forget。也就是说编程人员不能够在animation过程中获得任何信息(比如当前的位置

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号