关闭

黑马程序员——OC基础---简单的OC程序

115人阅读 评论(0) 收藏 举报

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

OC简介

C语言的基础上增加了一层最小的面向对象语法

完全兼容C语言

可以在OC代码中混入C语言代码甚至是C++代码

可以使用OC开发Mac OS X平台和iOS平台的应用程序



OC语法预览

关键字

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

下面列举一些常见的关键字

@interface@implementation@end 

@public@protected@private@selector 

@try@catch@throw@finally  

@protocol@optional@required@class

@property@synthesize@dynamic

selfsuperid_cmd__block__strong__weak


字符串以@开头

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


OC程序的开发过程

C语言类似:


示例:


1OC程序

代码编写

C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中。比如这里写到一个main.m文件中(文件名可以是中文)

#include <stdio.h>

// OC程序的入口:main函数
int main()
{
    printf("第1个OC程序\n");
    return 0;
}

运行结果:




2OC程序

代码编写

来点跟C语言不一样的,使用NSLog函数输出内容

<pre name="code" class="plain">#import <Foundation/Foundation.h>

int main()
{
    // NSLog输出内容会自动换行
    NSLog(@"第2个OC程序!!!");
    
    return 0;
}



运行结果:

NSLogprintf的区别

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

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

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

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

#import的作用

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

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

#ifndef _STDIO_H_

#define _STDIO_H_

#endif

Foundation框架的作用

开发OCiOSMac程序必备的框架

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

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

#import <Foundation/Foundation.h>

BOOL的使用

BOOL类型的本质

typedef signed char BOOL;

BOOL类型的变量有2种取值:YESNO

#define YES (BOOL)1

#define NO  (BOOL)0

BOOL的输出(当做整数来用)

NSLog(@"%d %d",YES, NO);

示例:

3OC程序

多个.m文件的开发

C语言中多个.c文件的开发是一样的

编写3个文件

#import "two.h"

int main()
{
    test();
    return 0;
}

void test();

#import <Foundation/Foundation.h>

void test()
{
    NSLog(@"调用了test函数");
}

运行结果:



示例:


.m文件和.c文件混用开发

编写3个文件

main.m


#import "two.h"

int main()
{
    test();
    return 0;
}

#include <stdio.h>

void test()
{
    printf("调用了test函数\n");
}

void test();

运行结果:




BOOL的使用

BOOL类型的本质

typedef signed char BOOL;

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

#define YES ( BOOL)1

#define NO (BOOL)0

BOOL的输出(当做整数来用)

NSLog(@"%d %d", YES, NO);


示例:

#import <Foundation/Foundation.h>


BOOL test(BOOL mybool)
{
    return NO;
}

int main()
{
    BOOL b = YES;
    
    BOOL b2 = NO;
    
    BOOL b3 = 1; // YES
    
    BOOL b4 = 0; // NO
    
    
    //NSLog(@"%i", b);
    
    NSLog(@"%d", test(YES));
    return 0;
}

运行结果:


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3352次
    • 积分:215
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档