iOS学习笔记(一)————OC语法基础

/ 0评 / 3

iOS的开发是在mac操作系统下进行的,iOS就是苹果移动端操作系统,使用的IDE是Xcode,只要使用的是苹果的OS,就能做iOS的开发。我们使用的是苹果的编程语言-- Objective-C,是C语言的超集,只是在C语言的基础上添加了面向对象的特性,这是一种单继承的语言。在2014年的时候苹果公司推出了一门新的编程语言Swift,这是一门看起来比较像脚本语言的程序语言,也是可以作为iOS开发语言的,而且可能是未来的趋势,一年来也比较火,不过我们这里用的是OC,现在开发用的大部分还是OC,学会了OC,Swift上手也很快。

安装好了Xcode,那就开始动起来吧!

首先呢,我们使用Xcode创建一个新的工程(我系统比较老,所以使用的是Xcode6.0版本,不过都差不多)。

打开Xcode点击Create a new Xcode project创建新工程,选择iOS下的Application,选择右边的Single View APP,选择Next。

语法基础001

出现了以下的界面,学过编程的童鞋都知道我们第一个程序是什么了,Hello World那是必须的!!!

语法基础002

选择好放置的位置就进入了工程目录,我们来看一下目录结构。

语法基础003

Hello World 文件夹主要用来存放类文件以及资源文件(图片,音频,视频,配置文件等),也是以后我们主要操作的文件夹。该文件夹下有两个.h文件,两个.m文件,一个storyboard文件,一个xib文件。.h文件是头文件,.m文件是实现文件,就比如c/c++中的 .h/.c/.cpp文件,道理是一样的。而xib文件是苹果推出的可视化布局文件,可以傻瓜式拖拽控件制作布局,而storyboard则是xib的一个合集,可以不用创建多个xib就能实现多个界面,个人认为比较适合个人开发。

Hello WorldTests是测试文件。

Products 是包文件。

而使用Xcode6之前版本创建的工程还有一个 FrameWorks文件夹,这里面存放的是框架,结构,系统提供的类库(工具,类文件)。

在这个工程中,main.c是入口文件,在这里面将控制权交给AppDelegate这个类,里面有一个启动方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

我们创建的是Single View的工程,所以还会有一个ViewController类,入口类将程序的界面显示权给了ViewController这个类,来看一下这个类

语法基础004

有这样的方法,这是系统设置的方法,而我们的代码一般就写再viewDidLoad方法里面,如图所示,我们写一个OC中的打印语句NSLog(@"Hello World!"); command + R 运行程序,就会在控制台打印出Hello World!了。

这里我们提到了类,类是具有相同属性和行为的集合,而属性在编程语言中是存放数据的,行为是操作数据的,而对象就是类的实例。而在OC中所有的类的继承于NSObject这个超级父类。

那说到了数据,我们就该说数据类型了,在OC中有九种基本的数据类型,分别是int/short/long/long long/char/float/double/bool/Byte

而OC中的行为是用方法来实现的,分为+方法和-方法,-方法一般是类的对象调用的,+方法是类方法,相当于静态方法,是类直接调用的。

方法可以不传值,也可以传多个值比如

- (void)eat;
- (int)value1:(int)a value2:(int)b;

乍一看,OC中传多个值比较别扭,这是因为OC不是类C语言,学过别的编程语言的同学看起来是很别扭。

而OC中调用一个方法就更加的别扭了[className eat];使用中括号来调用方法。

而OC为了迎合大家的心理,也有使用.来调用方法的地方。

要想实现打. 调用,就需要设置set/get方法,学习过Java对这并不陌生,我们这里这个属性的set/get方法应该先在头文件中声明好属性,比如一个属性 int weight;在头文件中继续声明以下方法

- (void)setWeight:(int)aWeight;
- (int)weight; //OC中的get方法不需要加get

//然后在.m文件中实现
- (void)setWeight:(int)aWeight{
weight = aWeight;
}
- (int)weight{
return weight;
}

但是这里为什么还是不能使用.来调用呢?那是因为OC给我们提供了一种便利,可以不再手动书写set/get方法,直接使用@property关键字来声明属性,比如@property float height;

这样就可以使用.来调用height自动生成的set/get方法了。

在OC中创建对象,比如我们有一个People的类,创建它的对象可以使用People *p = [[People alloc] init];来创建。

还有就是程序语言必不可少的流程控制:for循环,OC中的forin循环,while循环,do while循环,if(){}else{}控制等等这一类的流程控制。

这些几乎就是OC中比较基础的语法问题了,如果没有说到的在以后遇见会详细说明。

代码请查看 http://git.oschina.net/zcb1603999/LearningiOS

评论已关闭。