欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《IOS应用开发教程》.ppt

    • 资源ID:6072026       资源大小:314.49KB        全文页数:37页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《IOS应用开发教程》.ppt

    IOS应用开发教程,QQ学习群:262779381,第二章 Objective-C基础,QQ学习群:262779381,教学目标:掌握Objective-C基本概念和相关知识点的运用了解并掌握Objective-C基本数据类型和表达式的使用掌握选择、判断和循环三种结构的使用掌握Objective-C中的数组和字典基本方法的使用,QQ学习群:262779381,2.1Objective-C概述,Objective-C最早是在20世纪80年代由Brad J.Cox设计的,它以一种叫做SmallTalk-80的语言为基础。Objective-C实际上实在C语言的基础上加上了一层,对C语言的扩展,从而创造出的一门新的变成语言。1988年,NeXT计算机公司获得了Objective-C语言的授权,并对该语言创建了语言库和一个开发环境,就是NEXTSTEP。在1996年12月,苹果公司正式收购NeXT公司后,Objective-C语言正式被用为开发苹果系统的软件,NEXTSTEP/OPENSTEP环境成为了苹果操作系统下一个主要发行版本OS X的基础,这个开发环境的版本被Apple公司成为Cocoa,内置了对Objective-C语言的支持。,QQ学习群:262779381,2.2Objective-C基本数据类型与表达式,变量:包括变量名、变量类型和作用域定义变量的方法:类型 变量名=初始值标识符:标识变量名、方法名和类名的有效字符标识符可以由字母、数字、美元符号$和下划线组成,但标识符只能以字母、美元符号$和下划线开头,并且Objective-C中是区分大小写的member _ios 4u_u#abc float u4,QQ学习群:262779381,变量的赋值:类型说明符 变量a=值1,变量b=值2,;但应注意的时,不允许给变量连续赋值,例如int a=b=c=5是不合法的下面我们就来在Xcode的Command Line中定义一些变量并给它们赋初值。,QQ学习群:262779381,新建Command Line Tool窗口1.#import 2.int main(int argc,const char*argv)3.4.autoreleasepool 5.int a=10,b,c=8;6.b=a+c;7.NSLog(a=%d,b=%d,c=%d,a,b,c);8.9.return 0;10.,QQ学习群:262779381,常量:Objective-C中的5种常量 整形常量:12345 实型常量:1.2345 字符常量:a 字符串常量:“abc”逻辑常量:true、false这里我们主要要注意字符常量和字符串常量的不同,字符常量是用单引号而且引号中只有一个常量,而字符串常量则是用双引号引起,引号中可以由多个字符组成。,QQ学习群:262779381,局部变量和实例变量:定义在方法或者语句内部的变量成为局部变量,而将定义在方法外部和类内部定义的变量称为实例变量或成员变量1.#import 2.int main(int argc,const char*argv)3.4.autoreleasepool 5.int a=10,b,c=8;6.b=a+c;7.8.NSLog(a=%d,b=%d,c=%d,a,b,c);9.return 0;10.,QQ学习群:262779381,实例变量:实例变量不能在定义的时候给它初始化创建一个Objective-C类.h文件1.#import 2.interface abc:NSObject3.4.int a;5.6.-(void)print;7.end,QQ学习群:262779381,.m文件8.#import abc.h9.implementation abc10.-(void)print11.12.NSLog(a=%d,a);13.14.end,QQ学习群:262779381,main.m文件15.#import 16.#import abc.h17.int main(int argc,const char*argv)18.19.autoreleasepool 20.abc*num=abc allocinit;21.num print;22.23.return 0;24.,QQ学习群:262779381,基本数据类型:类型 NSLog字符char%cshort int%hi、%hx、%hoint%i、%x、%olong int%li、%lx、%lofloat%f、%e、%g、%adouble%f、%e、%g、%along double%Lf、%Le、%Lgid%p,QQ学习群:262779381,1.#import 2.int main(int argc,const char*argv)3.4.autoreleasepool 5.int intVar=100;6.float floatVar=3.1415;7.double doubleVar=3.13e+11;8.char charVar=A;9.NSLog(intVar=%d,intVar);10.NSLog(floatVar=%f,floatVar);11.NSLog(doubleVar=%e,doubleVar);12.NSLog(doubleVar=%g,doubleVar);13.NSLog(charVar=%c,charVar);14.NSLog(intVar=%ld,sizeof(intVar);15.NSLog(floatVar=%lu,sizeof(floatVar);16.NSLog(doubleVar=%lu,sizeof(doubleVar);17.NSLog(charVar=%ld,sizeof(charVar);18.19.return 0;20.,QQ学习群:262779381,Foundation框架中的数据对象NSNumber初始化方法:NSNumber NumberWithInt:NSNumber NumberWithFloat:NSNumber allocinitWithInt:NSNumber allocinitWithFloat:,QQ学习群:262779381,与基本数据之间的转换:NSNumber*ageNumber=NSNumber allocinitWithInt:2;NSNumber*weightNumber=NSNumber allocinitWithFloat:20.5;int age=ageNumber intValue;float weight=weightNumber floatValue;,QQ学习群:262779381,NSString初始化方法:NSString allocinitWithString:NSString allocinitWithFormat:常用方法:大小写转换:大写MyString1 uppercaseString 小写MyString1 lowercaseString 首字母大写MyString1 capitalizedString比较字符串:MyString1 isEqualToString:MyString2截取字符串:MyString1 substringToIndex:2(从字符串0号位置开始,取2个字符)MyString1 substringFromIndex:4(从字符串4号位置开始,到结束)MyString1 substringWithRange:range(选取一个截取的范围)NSRange结构体创建方法:NSRange range;range.location=2;range.length=4;拼接字符串:StringByAppendingString,QQ学习群:262779381,2.3循环与选择结构,其实Objective-C中的循环语句、选择语句和C语言、Java中的语句基本差不多,我们在这里做一个简单的介绍(有C或Java基础的读者可以略过)。主要的循环结构有三种,for、while和dowhile。for循环语句的一般格式为:for(初始值设置;循环条件;循环表达式)初始值设置就是定义一个变量,然后对它赋初值,变量作用于循环语句中;循环条件则是设置一个循环进行下去的条件,如果不满足这个条件,循环将结束;最后一个循环表达式的意思是在结束一次循环之后,要对变量进行新一次的求值,看这个新得出的值是否满足进行循环的条件。,QQ学习群:262779381,下面介绍下for循环语句执行的步骤:求初始表达式的值;求循环条件的值。如果不满足循环条件(表达式为false),循环结束。然后执行循环体外的语句;执行循环体内的语句;求循环表达式的值;返回步骤2继续执行,#import int main(int argc,const char*argv)autoreleasepool int sum=0;for(int i=1;i=100;i+)sum=sum+i;NSLog(sum=%d,sum);return 0;,QQ学习群:262779381,这是我们在编程语言中最常见的for循环语句,求1到100的和,我们就从这个简单的例子来分析for循环执行过程。首先我们定义了一个整型变量sum用于存储最后求的结果,然后给它赋值0。接下来在for循环中我们定义了一个整型变量i用于循环中的控制,并设定循环的条件i=100,每次循环之后,i的值加1。然后执行循环体内的语句sum=sum+i;当i递增到101时,就不符合i=100这个循环条件,所以循环就结束,执行循环体外的输出语句,将sum的结果打印在控制台上。while语句的一般格式为:while(循环条件)循环语句,QQ学习群:262779381,#import int main(int argc,const char*argv)autoreleasepool int i=0,sum=0;while(i=100)sum=sum+i;i+;NSLog(sum=%d,sum);return 0;,我们可以看到,while循环的结构也是非常明确,在while后面列出执行循环的条件,当条件不满足循环条件时就跳出循环。dowhile语句和while语句很相似,只是dowhile语句先要执行do中的一条语句,然后再判断是否符合循环条件。,QQ学习群:262779381,if语句if语句经常和else语句搭配使用,当满足if条件是就执行语句A,如果不满足条件,就执行语句B。还可以嵌套使用,但是要注意if和else需要配套的使用,而else会寻找系统中上一个未配对的if语句来配对,读者也需要注意代码书写的规范,这样就很好正确的使用ifelse语句。switch语句 switch语句也是在编写程序中经常要用到的一种重要的结构。它的一般形式为:switch(表达式)case value1:陈述语句;break;case value2:陈述语句;break;default;break;将圆括号中的表达式与value值相匹配,如果匹配成功,则执行相应的陈述语句。break语句表示一中特定情况的结束,并导致switch语句的结束。大家可以在课后练习下上述不同结构的语句。,QQ学习群:262779381,2.4数组和字典,在Apple提供的Foundation framework的框架中提供了三种收集NSObject对象的集合,它们是字典(NSArray)、集合(NSSet)和字典(NSDictionary)。NSArray用于存储有序的对象集合,NSSet用于存储无序的对象集合,NSDictionary用于存储键值对的集合。在本小节中,我们为大家主要介绍NSArray和NSDictionary。在介绍内容之前,还有一点需要读者注意,这三个集合类只能存储cocoa对象(NSObject对象),如果要保存一些原始的C数据,如int类型,那么就需要将int类型转换为NSObject对象,再存储到集合中,我们会在后面的内容中详细讲解如何转换。,QQ学习群:262779381,2.4.1数组(NSArray),当我们输入到init实例初始化方法时,我们可以发现,框架中为开发人员提供了多种初始化数组的方法,QQ学习群:262779381,如果我们使用的是类方法创建,如下所示。NSArray*array1=NSArray arrayWithObjects:1,4,3,5,nil;同样的,框架为开发人员也提供了很多类方法初始化数组,,QQ学习群:262779381,有细心的读者可能会发现,实例方法和类方法他们的方法名都相同,方法描述也相同,只是前面实例方法是“-”号,而类方法是“+”号,他们到底有什么不同之处呢?我创建与初始化数组时候该选择那种呢?下面我们介绍一下这二者的异同。简单来说,顾名思义,类方法不需要实例化对象就可以使用,直接通过类调用;而实例化方法,必须通过类创建一个实例(对象)才能使用。因为初始化数组的方法有些特殊,它的实例方法和类方法都一样,所以体现不出区别,在后面的项目中,会遇到实际的情况,类方法一般是用作工具来使用,因为它不需要创建实例。,QQ学习群:262779381,在创建并初始化完数组后,那么我们怎么取出数组中的内容呢?我们可以用2种方法遍历数组,第一种方法直接通过NSLog函数输出。NSLog(array1:%,array1);,控制台打印结果为:array1:(1,4,3,5),第二种方法通过循环来遍历数组,循环的方法也有2中,第一种是与C语言中的for循环一样;第二种是Objective-C中的新语法。for(int i=0;iarray1.count;i+)NSLog(第%d个元素是:%,i,array1 objectAtIndex:i);控制台打印结果为:NSArray841:62657 第0个元素是:1NSArray841:62657 第1个元素是:4NSArray841:62657 第2个元素是:3NSArray841:62657 第3个元素是:5,QQ学习群:262779381,在for循环中,我们使用了一个数组的实例方法,objectAtIndex,这个函数的意思是取出数组中下标为特定值的元素,我们在方法中通过一个变量i依次打印出数组的值。array1.count这个count值返回的是数组中元素的个数。,有些情况下,数组中元素是打乱存储的,我们会需要将数组按照一定的顺序进行排序并输出,那么我们可以使用数组的一个实例方法完成数组的排序。再创建一个新的数组,用于存放排序后的元素。,NSArray*sortArray=array1 sortedArrayUsingComparator:NSComparisonResult(id obj1,id obj2)if(obj1 intValueobj2 intValue)return NSOrderedDescending;if(obj1 intValueobj2 intValue)return NSOrderedAscending;return NSOrderedSame;NSLog(排序后的数组:%,sortArray);,QQ学习群:262779381,可变数组(NSMutableArray)是数组的子集,所以它继承了父类NSArray的属性。相比数组来说,可变数组最大的不同点就是在初始化数组后,还可以根据用户的需要来向数组中添加或修改元素。,QQ学习群:262779381,同不可变数组一样,可变数组的初始化方法是相同的,我们再次就不在赘述了。创建一个数组元素为字符串的可变数组mArray。NSMutableArray*mArray=NSMutableArray allocinitWithObjects:jack,rose,nil;然后我们在数组的第1个位置添加一个元素“mick”。mArray insertObject:mick atIndex:1;NSLog(mArray:%,mArray);控制台打印结果为:mArray:(jack,mick,rose),QQ学习群:262779381,2.4.2字典(NSDictionary),字典也是在Objective-C中以及实际项目开发中用的非常多的一种存储结构,它是以键值对的形式(key-value)进行存储,然后通过key属性名称来获取到与key对应的value的值,value是一个对象指针,通过实例方法valueForKey访问相应的值。通常访问字典查询的速度非常快,因为它是使用hash表进行存储。,与数组类似,字典的创建的实例方法和类方法都相同,这里我们就使用一个实例方法初始化字典。其它方法读者可以查看相应的SDK。NSDictionary*dic=NSDictionary allocinitWithObjectsAndKeys:jack,name,24,age,nil;,QQ学习群:262779381,初始化完字典后,我们需要去查看字典的相关信息,比如字典中有多少键值对,有哪些键,有哪些值,某个键对应的值是多少等等,我们一一为大家介绍相应的属性与方法。查看键值对数量NSLog(键值对个数:%ld,dic count);控制台打印结果为:键值对个数:2查看所有键查看方法的返回值,发现它的返回值是NSArray数组,那么我们先创建一个数组用于保存字典的键。NSArray*keys=dic allKeys;allkeys方法返回的是字典中所有键的数组。然后再将keys数组打印输出。NSLog(键为:%,keys);控制台输出结果为:键为:(name,age),QQ学习群:262779381,查看特定键对应的值产看特定键对应的值使用的是valueForKey方法。我们返回name键对应的值。NSLog(name%,dic valueForKey:name);控制台输出结果为:name:jack,在很多实际情况中,都是使用已经存在的字典去创建一个数组,也就是说,数组中存储的是一个字典,那么该如果进行存储呢?存储之后怎么读取相应的数据呢?我们先创建一个字典。注意添加元素时,外面是大括号,数组是中括号。程序清单:SourceCode02NSArraymain.mNSDictionary*dic1=NSDictionary allocinit;dic1=name:jack,age:20;然后初始化一个数组对象,它的内容就是字典dic1。最后输出键为age对应的值。使用数组的valueForKey方法实现。NSArray*array=NSArray arrayWithObject:dic1;NSLog(age:%,array valueForKey:age);控制台打印结果为:age:(20),QQ学习群:262779381,可变字典(NSMutableDictionary)是NSDictionary的子类,在创建一个可变字典的实例后,用户可以对其Key-Value键值对进行修改,这也是和NSDictionary不同之处。我们初始化一个可变字典,并将它的容量定位10,也就是说这个可变字典可以存储的键值对为10组。NSMutableDictionary*dictionary=NSMutableDictionary dictionaryWithCapacity:10;然后向可变字典中添加4组键值对。dictionary setObject:jack forKey:name;dictionary setObject:20 forKey:age;dictionary setObject:China forKey:nationality;dictionary setObject:JiangXi forKey:province;我们通过NSLog函数输出可变字典中的所有键值对。NSLog(dictionary:%,dictionary);,QQ学习群:262779381,控制台打印结果为:dictionary:age=20;name=jack;nationality=China;province=JiangXi;如果我们想删除province键,那么我们可以通过removeObjectForKey方法来删除。dictionary removeObjectForKey:province;控制台打印结果为:dictionary:age=20;name=jack;nationality=China;,QQ学习群:262779381,本章小结,通过本章内容,我们了解了Objective-C中变量和基本数据类型的操作,并掌握了在OC中的三大语言控制结构,最后了解数组和字典的基本使用方法,特别注意的是,读者需要区分字典和数组的使用,而字典也是Objective-C中比较有特色的结构,希望读者能够掌握。,QQ学习群:262779381,课后习题分别用for循环和while循环打印九九乘法表,并将乘法表以三角形的形式输出。整数的阶乘可以写成n!,它表示1到n之间所有连续整数的成绩。编写一个程序打印出1到n之间的阶乘,n由用户输入,将结果打印出来。编写一个程序,计算整数各个位上数字的和。例如,整数1234各个位上的数字和为1+2+3+4,等于10。整数的值由用户输入。定义一个数组,它拥有5个元素,遍历数组并将数组的元素从后向前打印出来。定义一个字典,字典的元素包括5个数组,并遍历。,QQ学习群:262779381,

    注意事项

    本文(《IOS应用开发教程》.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开