A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

感觉不知道怎么写技术博客,所以就在mj的笔记上自己昨个整理,也不知道这样行行不行。


一、OC简介
    OC全称 Objective-C,它通过一套全新的语法,在C语言基础上添加了面向对象的特性。OC语法只不过频繁使用方括号,而且不吝于写出极长的方法名,虽然代码冗长,但十分易读。OC完全兼容C语言,且可以在OC代码中混入C语言代码,甚至是C++代码。我们可以使用OC开发Mac OS X平台和IOS平台的应用程序。
     OC语言使用的是“消息结构”(messaging structure)而非函数调用(function calling)。OC语言是由Smalltalk演化而来的,后者是消息型语言的鼻祖。消息与函数电泳之间的区别看上去就像这样:
[url=]//消息结构[/url]
     Object *obj =  [Object new];
     [obj performWith:parameter1 and:parameter2];
[url=]//函数调用[/url]
     Object *obj = new Object;
     obj->perform(parameter1,parameter2);


关键的区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。


二、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、字符串都是以@开头,比如说OC中的字符串是@“hello”,而C语言的字符串是hello。
3、其他的语法都有
     基本数据类型:char int float double BOOL(YES\NO)
     nil:相当于C语言中的null
     基本语句:循环语句(do while、while、for),条件语句(if、if-else、switch)
     注释://和/*...*/
    屏幕输出NSLog(@"hello");NSLog(@"age is %i",27);
三、OC的开发过程
     
四、第一个OC程序
     1、代码编写:OC语言的入口是main函数,它写在 .m文件中
     比如写在一个main.m文件中:
     #include <stdio.h>
     int main()
     {
         printf("第1个OC程序\n");
         return 0;
     }
     这是在oc源文件里面的c语言写法,一样能够编译运行。
     2.终端指令:
     编译:cc –c main.m
     链接:cc main.o
     运行:./a.out

五、第二个OC程序
    1、 以OC代码写的main.m文件
     #import <Foundation/Foundation.h>
     int main()
     {
         NSLog(@"第2个OC程序");
         return 0;
     }
    2、.终端指令
          编译:cc –c main.m
          链接:cc main.o –framework Foundation
          运行:./a.out
     由于使用了NSLog函数,所以需要引入框架文件 #import <Foundation/Foundation.h>,同时也要告诉编译器使用了框架 –framework Foundation
   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);


评分

参与人数 1黑马币 +2 收起 理由
星河鹭起 + 2

查看全部评分

1 个回复

倒序浏览
看起来不是复制粘贴的就成
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马