黑马程序员------[Objective-C]初识Objective-C

本文介绍了Objective-C的基础概念,包括其面向对象的特点、关键字、字符串表示等,并通过实例演示了使用NSLog与printf的不同之处,以及如何引入Foundation框架进行开发。
------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

 一、Objective-C简介

ObjectIve-C, 简称OC ,正如其名称一样与C语言的区别是:OC是面相对象编程语言,C语言是面相过程编程语言,OC在C语言的基础上增加了一层最小的面向对象语法,完全兼容C语言,可以在OC代码中混入C语言代码甚至是C++代码可以使用OC开发Mac OS X平台和iOS平台的应用程序。

 二、OC语法概览

1.关键字

 基本上所有关键字都是以@开头。如:

@interface@implementation@end

@public@protected@private@selector

@try@catch@throw@finally 

@protocol@optional@required@class

@property@synthesize@dynamic


 但以下关键字除外:

selfsuperid_cmd__block__strong__weak


 2.字符串以@开头

比如@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串

 

 3.其他语法


基本数据类型除了C语言有的以外,还有 BOOL(YES/NO),nil(相当于NULL),屏幕输出NSlog(@“xxxxxx”)

三、OC程序开发过程

与C语言类似,首先编写源文件,然后进过编译链接生成可执行文件,只不过C语言编写在.c文件中,OC编写在.m文件中。跟C语言一样OC的入口函数也是main函数,下面就是一个最简单的OC程序:(PS:看起来跟C语言程序一模一样,那是因为OC完全兼容C)

/**
 * 文件名 : main.m
 */

#include <stdio.h>

int main(void)
{
    printf("hello OC\n");
    return 0;
}


然后进行编译链接:

cc -c main.m ------->生成main.o

cc main.o      -------->生成a.out

然后就可以执行 ./a.out     看到结果一下结果:



下面来个跟C语言程序不一样的OC程序

/**
 * 文件名:main.m
 */

#include <Foundation/Foundation.h>

int main(void)
{
    NSLog(@"hello OC");
    return 0;
}

执行编译链接

cc -c main.m ------>生成main.o

cc main.o -framework Foundation  ----->生成a.out

执行 ./a.out 得到以下结果:


虽然得到同样的结果,但是源码并不相同,不同之处在头文件的包含何屏幕输出函数不一样,下面来看看他们的区别:

#import的作用

 跟#include一样,用来拷贝某个文件的内容

可以自动防止文件内容被拷贝多次,也就以为着头文件中不用加入下面的预处理指令了

#ifndef    _STDIO_H_

#define   _STDIO_H_

#endif

NSLog与printf的区别

   NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数

   NSLog输出后会自动换行,printf输出后不会自动换行

   使用NSLog需要#import <Foundation/Foundation.h>

   使用printf需要#include <stdio.h>


Foundation框架的作用

 开发OC、iOS、Mac程序必备的框架

 此框架中包含了很多常用的API(应用编程接口)

 框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可,既:

#import <Foundation/Foundation.h>


BOOL的使用

 BOOL类型的本质

typedef signed char BOOL;

 BOOL类型的变量有2种取值:YES、NO

#define YES (BOOL)1

#define NO  (BOOL)0


下面用一个程序做验证:

/**
 * 文件名:mian.m
 */

#import <Foundation/Foundation.h>

int main(void)
{
    NSLog(@"(BOOL)YES is %d, (BOOL)NO is %d",YES,NO);
    return 0;
}

结果如下:



------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值