黑马程序员技术交流社区

标题: 不知道可以这样些技术博客吗?第一天oc笔记——oc的基础... [打印本页]

作者: 楚燮哥哥    时间: 2014-11-29 08:51
标题: 不知道可以这样些技术博客吗?第一天oc笔记——oc的基础...
感觉不知道怎么写技术博客,所以就在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);



作者: 下一刻湮灭    时间: 2014-11-30 15:03
看起来不是复制粘贴的就成




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2