04 2013 档案

摘要:这讲继续介绍iOS初学者比较感兴趣的问题:iOS开发的前景如何、iOS开发的难易度。要想分析iOS开发的前景,首先你要搞清楚是哪个牛X公司在维护着iOS系统、是谁在背后支撑着全球的iOS开发者,那就是大名鼎鼎的苹果公司。2012年3月份,苹果公司的市值已经突破5000亿美元,称为世界上市值最大的公司。5000亿是神马概念呢? 阅读全文
2013-04-28 21:25 M了个J 阅读(23602) 评论(13) 推荐(29) 编辑
摘要:在上一讲中,介绍了什么是iOS开发。说简单一点,iOS开发,就是开发运行在iPhone或者iPad上的软件。这么一说完,应该有很多人就会产生一些疑惑,比如学习iOS开发是不是一定要买iPhone?需不需要买苹果电脑呢?因此,在这讲中,我会为广大有意学习iOS开发的朋友们进行解惑,说明一下学习iOS开发究竟需要那些准备。 阅读全文
2013-04-27 00:58 M了个J 阅读(32936) 评论(21) 推荐(43) 编辑
摘要:从今天开始,我就开始更新【零基础学习iOS开发】这个专题。不管你之前是否涉及过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题。我尽量以通俗易懂的语言,让每个人都能够看懂。若遇到不明白的地方或者对此文有异议,望及时评论。 阅读全文
2013-04-24 17:05 M了个J 阅读(45009) 评论(28) 推荐(54) 编辑
摘要:什么是空指针和野指针 1.空指针 1> 没有存储任何内存地址的指针就称为空指针(NULL指针) 2> 空指针就是被赋值为0的指针,在没有被具体初始化之前,其值为0。2.野指针 "野指针"不是NULL指针,是指向"垃圾"内存(不可用内存)的指针。野指针是非常危险的。 阅读全文
2013-04-22 00:20 M了个J 阅读(29341) 评论(13) 推荐(34) 编辑
摘要:OC中有一个self关键字,用法跟Java中的this类似,都是代表着当前方法的调用者。但self和this还是有区别的。Java中的this只能用在动态方法中,不能用在静态方法中。OC中的self既可以用在动态方法中,也可以用在静态方法中。 阅读全文
2013-04-20 08:53 M了个J 阅读(14254) 评论(3) 推荐(24) 编辑
摘要:默认的构造方法,也就是init方法,它是不接收任何参数的。因此,在实际开发中,为了方便,会经常自定义构造方法。跟Java一样,构造方法内部首先要调用父类的构造方法,在第2行调用了父类的init方法,它会返回初始化好的Student对象,这里把返回值赋值给了self,self代表Student对象本身。 阅读全文
2013-04-19 20:44 M了个J 阅读(16013) 评论(11) 推荐(42) 编辑
摘要:上一讲简单介绍了NSThread的使用,虽然也可以实现多线程编程,但是需要我们去管理线程的生命周期,还要考虑线程同步、加锁问题,造成一些性能上的开销。我们也可以配合使用NSOperation和NSOperationQueue实现多线程编程,实现步骤大致是这样的: 1> 先将需要执行的操作封装到一个NSOperation对象中 2> 然后将NSOperation对象添加到NSOperationQueue中 3> 系统会自动将NSOperation中封装的操作放到一条新线程中执行 在此过程中,我们根本不用考虑线程的生命周期、同步、加锁等问 阅读全文
2013-04-19 00:36 M了个J 阅读(19168) 评论(5) 推荐(22) 编辑
摘要:每个iOS应用程序都有个专门用来更新显示UI界面、处理用户触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法。iOS中有3种常见的多线程编程方法:1.NSThread这种方法需要管理线程的生命周期、同步、加锁问题,会导致一定的性能开销2.NSOperation和NSOperationQueue是基于OC实现的。NSOperation以面向对象的方式封装了需要执行的操作,然后可以将这个操作放到一个NSOperationQueue中去异步执行。不必关心线程管理、同步等问题。3.Grand Centeral Dispatch简称GCD,iOS4才开始支持,是纯C语言的API。自iPad2开始,苹果设备开始有了双核CPU,为了充分利用这2个核,GCD提供了一些新特性来支持多核并行编程 阅读全文
2013-04-18 22:11 M了个J 阅读(12755) 评论(5) 推荐(18) 编辑
摘要:上一讲介绍了iOS中的异步GET请求,这讲来看看异步POST请求。要想在iOS中发送一个POST请求,首先要了解POST请求的一些细节: 1> 跟GET请求不一样的是,POST请求的请求参数不是拼接在请求路径后面,而是以请求体的形式发送到服务器端。 2> POST请求需要发送两部分的数据到服务器端: * 请求体内容:所有的请求参数 * 请求头信息:请求体长度、请求数据的类型 阅读全文
2013-04-17 23:55 M了个J 阅读(12361) 评论(5) 推荐(18) 编辑
摘要:近几年来,云计算是一个非常热门的技术名词,很多专家认为,云计算会改变互联网的技术基础,甚至会影响整个产业的格局。可能还很多人不了解什么是云计算,简单来说,就是把用户的数据(比如文档、照片等)、用户需要使用的软件、用户需要搜索的资源都保存在"云端",并不用保存在用户本地。你可以将"云端"看做了一台超级计算机,其实是由无数台大型服务器组成的.现在很多的移动应用也类似于"云计算"的模式,比如新浪微博,用户的数据都是保存在新浪服务器的数据库里面。 阅读全文
2013-04-17 22:30 M了个J 阅读(9147) 评论(6) 推荐(20) 编辑
摘要:CABasicAnimation是CAPropertyAnimation的子类,使用它可以实现一些基本的动画效果,它可以让CALayer的某个属性从某个值渐变到另一个值。下面就用CABasicAnimation实现几个简单的动画。 阅读全文
2013-04-15 00:58 M了个J 阅读(11186) 评论(3) 推荐(12) 编辑
摘要:Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。 阅读全文
2013-04-15 00:12 M了个J 阅读(13453) 评论(5) 推荐(19) 编辑
摘要:自定义层,其实就是在层上绘图,一共有2种方法。自定义层的方法1,方法描述:创建一个CALayer的子类,然后覆盖drawInContext:方法,使用Quartz2D API进行绘图。自定义层的方法2,方法描述:设置CALayer的delegate,然后让delegate实现drawLayer:inContext:方法,当CALayer需要绘图时,会调用delegate的drawLayer:inContext:方法进行绘图。 阅读全文
2013-04-14 20:57 M了个J 阅读(11501) 评论(6) 推荐(15) 编辑
摘要:在前面几讲中已经提到,每一个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根层)。所有的非Root Layer,也就是手动创建的CALayer对象,都存在着隐式动画。当对非Root Layer的部分属性进行相应的修改时,默认会自动产生一些动画效果,这些属性称为Animatable Properties(可动画属性)。position和anchorPoint属性都是CGPoint类型的。position可以用来设置CALayer在父层中的位置,它是以父层的左上角为坐标原点(0, 0)。anchorPoint称为"定位点",它决定着CALayer身上的哪个点会在position属性所指的位置。它的x、y取值范围都是0~1,默认值为(0.5, 0.5) 阅读全文
2013-04-14 20:24 M了个J 阅读(10951) 评论(6) 推荐(15) 编辑
摘要:上一讲已经说过,UIView内部默认有个CALayer对象(层),通过layer属性可以访问这个层。要注意的是,这个默认的层不允许重新创建,但可以往层里面添加子层。UIView可以通过addSubview:方法添加子视图,类似地,CALayer可以通过addSublayer:方法添加子层 阅读全文
2013-04-14 01:49 M了个J 阅读(10766) 评论(9) 推荐(15) 编辑
摘要:在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层。在创建UIView对象时,UIView内部会自动创建一个层(即CALayer对象)。当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是就完成了UIView的显示。换句话说,UIView本身不具备显示的功能,是它内部的层才有显示功能。 阅读全文
2013-04-13 23:18 M了个J 阅读(17041) 评论(26) 推荐(24) 编辑
摘要:在Java中,我们可以通过"对象名.成员变量名"来访问对象的公共成员变量,这个就称为"点语法"。当然,正规的做法是让成员变量私有化,让外界使用公共的get方法和set方法访问成员变量。很多高级语言中都有这种点语法,为了让其他行业的程序员快速上手OC,OC中也引入了点语法,只不过它的含义跟Java不太一样 阅读全文
2013-04-08 01:12 M了个J 阅读(18089) 评论(14) 推荐(31) 编辑
摘要:OC是一门面向对象的语言,因此它也有类、对象、静态\动态方法、成员变量的概念。这讲就来创建第一个OC的类。 在Java中,我们用1个.java文件就可以描述清楚一个类;在OC中,一般用2个文件来描述一个类: 1> .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。 注意:.h中的方法只是做一个声明,并不对方法进行实现。也就是说,只是说明一下方法名、方法的返回值类型、方法接收的参数类型而已,并不会编写方法内部的代码。 2> .m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。 阅读全文
2013-04-06 22:05 M了个J 阅读(24773) 评论(26) 推荐(76) 编辑
摘要:跟C程序一样,OC程序的入口点依然是main函数。在Java中,有垃圾回收机制,系统会自动回收不再使用的对象;而OC是不支持垃圾回收的,需要开发人员编写代码来释放对象所占用的内存。NSLog是一个日志输出函数,它可以将传入的OC字符串参数输出到控制台上。#import是一个预处理指令,作用跟C语言的#include类似,都是 包含(拷贝)某个文件的内容 到 预处理指令所在的位置。 阅读全文
2013-04-06 18:52 M了个J 阅读(15192) 评论(5) 推荐(22) 编辑
摘要:* C语言的源文件拓展名为".c",OC的源文件拓展名为".m" * main.m文件是我们这个程序中的唯一一个源文件 * 编译器会将.m文件编译为.o目标文件,比如main.m编译成功后会变成main.o文件 阅读全文
2013-04-06 15:43 M了个J 阅读(14974) 评论(8) 推荐(9) 编辑
摘要:由于大部分朋友对iOS开发还是有比较多的疑问,比如是不是一定要买iPhone和苹果笔记本才能做iOS开发?因此,这讲就为广大有意学习iOS开发的朋友们进行解惑。iOS是由苹果公司开发的手持设备操作系统,目前搭载这款操作系统的设备有:iPhone、iPad、iPod touch、iPad mini。也就是说,学习了iOS开发,就可以编写运行在iPhone上的应用程序。大家都知道,应用程序的开发都要用到编程语言,比如用Java开发android程序,而iOS开发的核心语言是Objective-C。因此,要想学习iOS开发,就必须先学习Objective-C这门语言。 阅读全文
2013-04-03 23:53 M了个J 阅读(14864) 评论(20) 推荐(21) 编辑

点击右上角即可分享
微信分享提示
顶部