oc学习笔记一(转)

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

0
0
1
291
1664
greenboy
13
3
1952
14.0

Normal
0
false

10 pt
0
2

false
false
false

EN-US
ZH-CN
X-NONE

$([{£¥·‘“〈《「『【〔〖〝﹙﹛﹝$(.[{£¥
!%),.:;>?]}¢¨°·ˇˉ―‖’”…‰′″?℃∶、。〃〉》」』】〕〗〞︶︺︾﹀﹄﹚﹜﹞!"%'),.:;?]`|}~¢

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

一、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

self、super、id、_cmd、__block、__strong、__weak、

2.     字符串以@开头

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

3.     其他语法

三、OC程序的开发过程

与C语言类似:

四、第1个OC程序

1.     代码编写

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

#include <stdio.h>

int main()

{

printf("第1个OC程序\n");

return 0;

}

2.终端指令

?   编译cc –c main.m

?   链接cc main.o

?   运行./a.out

五、第2个OC程序

1.     代码编写

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

#import <Foundation/Foundation.h>

int main()

{

NSLog(@"第2个OC程序");

return 0;

}

2.终端指令

?   编译cc –c main.m

?   链接cc main.o –framework Foundation

?   运行./a.out

3.     NSLog与printf的区别

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

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

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

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

4.     #import的作用

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

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

#ifndef    _STDIO_H_

#define    _STDIO_H_

#endif

5.     Foundation框架的作用

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

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

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

#import <Foundation/Foundation.h>

6.     BOOL的使用

?   BOOL类型的本质

typedef signed char BOOL;

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

#define YES (BOOL)1

#define NO (BOOL)0

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

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

六、第3个OC程序

1.        多个.m文件的开发

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

1)       编写3个文件

?   main.m

#import "one.h"

int main()

{

test();

return 0;

}

?   one.h

void test();

?   one.m

#import <Foundation/Foundation.h>

void test()

{

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

}

2)       终端指令

?   编译:cc –c main.m test.m

?   链接:cc main.o test.o –framework Foundation

?   运行:./a.out

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

1)    编写3个文件

?   main.m

#import "one.h"

int main()

{

test();

return 0;

}

?   one.h

void test();

?   one.c

#include <stdio.h>

void test()

{

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

}

2)    终端指令

?   编译:cc –c main.m test.m

?   链接:cc main.o test.o

?   运行:./a.out

(没有使用Foundation框架的话,就不用-framework Foundation)

时间: 2024-08-06 20:07:00

oc学习笔记一(转)的相关文章

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

黑马程序员-OC学习笔记之block

过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9426    Accepted Submission(s): 4151 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做par

黑马程序员-OC学习笔记之ARC

---------------------- IOS开发.Android培训.期待与您交流! ----------------------一.什么是ARC        ARC是自动引用计数,苹果官方在Xcode4.2及以后版本中加入的一个内存管理机制,完全取代了程序员人工的内存管理,使得程序员只须关心程序本身.使用ARC,编译器会自动在代码中加入内存管理代码,是一个编译器特性,而不是运行时特性,当然,它也和JAVA的垃圾回收不同,它的本质和手动的内存管理是一样的,只是这些代码编译器会自动添加.

黑马程序员-OC学习笔记之NSString与NSMutableString

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSString与NSMutableString 相信大家对NSString类都不陌生,它是OC中提供的字符串类,它的对象中的字符串都是不可变的,而它的子类NSMutableString类的对象中的字符串就是可变的.什么是可变与不可变呢?二者的区别就是在已经创建的一个字符串对象中,在程序中能不能更改字符串,比如拼接新的字符串,可变的可以在原字符串中更改,

黑马程序员——OC学习笔记—— Copy

黑马程序员——OC学习笔记—— Copy ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- copy 即对象拷贝 要使用对象数据而不希望修改对象时,可以使用copy copy叫做浅拷贝  mutablecopy深拷贝 copy需要遵守NSCopying协议,实现CopywithZone方法 MutableCopy也一样要遵守相应协议 注意: OC中copy复制的对象都是不可变的  mutablecopy复制的是可变副本 浅拷贝:只拷贝地址,不

黑马程序员-OC学习笔记之Foundatio框架集合类

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组,元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个O

黑马程序员-OC学习笔记之autorelease与自动释放池

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.autorelease autorelease与release相似,是OC中的一个对象方法.这两个方法都能把对象的引用计数器减1,但是release是一个精确的减1,对对象的操作只能在release之前进行,如果是在之后,就会出现野指针错误:而autorelease是一个不精确的引用计数器减1,当给对象发送autorelease消息时,对象就会被放到自动

OC学习笔记 ARC 强指针和弱指针 内存管理

强调一些概念 类:是一种结构,它表示对象的类型,对象引用类来获取和本身有关的各种信息,特别是运行什么代码来处理每种操作. 对象:是一种结构,它包含值和指向其类的隐藏指针. 实例:对象的另一种称呼. 消息:是对象可以执行的操作,用于通知对象去做什么.对象接收消息后,将查询对应的类,以便查找正确的代码来运行. 方法:是为响应消息而运行的代码,根据对象的类,消息可以调用不同的方法. 接口:是对象的类应该提供特殊的特性的描述. 用法如:@property (attribute1,attribute2)

oc学习笔记-语法学习总结

1.定义类:@interface 类名 : 父类@end 2.使用:(冒号)表示继承一个类Student : NSObject 3.使用()定义一个Catagory(类别) * 作用:在不改变原有类结构的基础上,扩展原有类的方法(不能扩展属性),但不建议重载原有类的方法 * 开发工具默认生成的文件为:类名+Catagory名称 * Catagory可以写在单独的文件中,也可以写在原有类的文件中,如何写根据需求来决定. 4.使用<>表示实现一个Protocol(协议),如需实现多个协议,将协议名

OC学习笔记 id类型

id是oc语言中一个独特的数据类型.一种通用对象类型.可以转换为任何数据类型,即id类型的变量可以存放任何数据类型的对象. 万能指针,能指向操作任何OC对象 id ==NSObject * 这是为什么呢?还是从OC的内部实现机制上来分析吧! 在内部处理上,id类型被定义为指向对象的指针,这可以从id的定义中看出.id在objc.h中的定义为: 1 typedef struct objc_object { 2 Class isa; 3 } *id; 而Class为typedef struct ob