黑马程序员_Objective-C基础知识


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

黑马程序员_Objective-C基础知识

                                                                                    XcodeRush


        今天开始学习Objective-C语言的基础知识啦!


        Objective-C在C语言的基础上增加了一层最小的面向对象的语法。Objective-C完全兼容C语言,可以在Objective-C代码中混入C语言代码,甚至是C++的代码。     

Objective-C源文件的扩展名是.m,C++代码的话就是.mm。可以使用Objective-C语言开发Mac OS X平台和iOS平台的应用程序。
Objective-C在编程语言关注排行榜中的排名不断攀升,这表明国内的Objective-C开发人员在不断的增多。

一、Objective-C的基本语法

1、Objective-C的关键字:基本上所有关键字都是以@开头。
常见的关键字有:@interface; @implementation; @end; @public; @protected;
@private; @selector; @try; @catch; @throw; @finally; @protocol; @optional;
@required; @class; @property; @synthesize; @dynamic;
self; super; id; _cmd; _block; _strong; _week;

2、Objective-C语言中的字符串是以@开头的。
比如:”Hello, World”是C语言中的字符串;而@”Hello, World”则是Objective-C中的字符串。在Objective-C语言中尽量不要使用C语言字符串;尽量使用@开头的Objective-C字符串。

3、Objective-C的其他语法
基本数据类型:char; int; float; double; BOOL(YES/NO);
nil: 相当于C语言中的NULL, 也就是0;
基本语句:循环语句(do while; while; for);条件语句(if; if-else; switch);
注释://; /*…*/;
屏幕输出:NSLog(@”Hello, World!”); NSLog(@”age is %i”, 123);

二、 Objective-C程序的开发过程
.m源文件编译成.o目标文件,然后再连接成.out可执行文件
链接:把项目中所有相关联的.o目标文件跟C函数库合并在一起生成一个可执行文件。

三、 第一个Objective-C程序
#include
// OC程序的入口:main函数
int main()
{
printf(“Hello, World!\n”);
return 0;
}
Objective-C程序完全兼容C语言程序。

四、 第二个Objective-C程序
如果程序用到了Foundation框架中的东西,链接时就必须添加Foundation框架信息。
添加方法:-framework Foundation添加Foundation框架。
NSLog函数会输出日志信息。
首先学好Foundation框架。
每一个框架中都有许多头文件;如果想使用这个框架的所有头文件,只需要包含这个框架的主头文件就可以了。每一个框架都有自己的主头文件(最主要的头文件)。每个框架的主头文件名都和框架名一样。
比如:Foundation框架的主头文件名:Foundation.h
UIKit框架的主头文件名:UIKit.h
程序只要包含Foundation框架的主头文件Foundation.h,就可以使用这个Foundation框架中的东西。
注意:不要私自改动框架文件中的内容。

相关代码:
/*
一、#import的用途:
1.跟#include一样,拷贝文件的内容;
2.可以自动防止文件的内容被重复拷贝;

二、#import
NSObjCRuntime.h中有NSLog函数的声明

三、Foundation框架头文件的路径
1.右击Xcode.app -> 显示包内容
2.Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework

四、主头文件
1.主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件
2.Foundation框架的主头文件名称就是Foundation.h
3.只需要包含Foundation框架的主头文件Foundation.h,就可以使用整个Foundation框架的东西

五、运行过程
1.编写OC源文件:.m\.c
2.编译:cc -c xxx.m xxx.c
3.链接:cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
4.运行:./a.out
*/

// NSObjCRuntime.h中有NSLog函数的声明
// #import
// 只需要包含Foundation框架的主头文件,就可以使用整个框架的东西
#import

int main()
{
// NSLog输出内容后会自动换行
NSLog (@"Hello, World!");

return 0;
}


五、 第三个Objective-C程序
分别编译源代码文件:
$cc –c one.m
$cc –c two.m
生成两个.o目标文件:one.o和two.o
链接两个.o目标文件生成.out可执行文件:
$cc one.o two.o –framework Foundation
相关代码:

// one.m
#import "two.h"

int main()
{
test();

return 0;
}

// two.h
void test();

// two.m

#import

void test()
{
NSLog (@"test()...");
}


六、 第四个 Objective-C程序
演示:Objective-C程序完全兼容C语言程序。
直接编译链接:cc one.m two.h
相关代码:
// one.m
#import "two.h"

int main()
{
test();

return 0;
}

// two.h
void test();

// two.c
#include

void test()
{
printf("test()...\n");
}


七、 BOOL类型
BOOL完全可以当作整型来用。实际上BOOL类型就是char类型。
Typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
相关代码:
#import

BOOL test(BOOL mybool)
{
return NO;
}

int main()
{
BOOL b = YES;

BOOL b2 = NO;

BOOL b3 = 1; // YES

BOOL b4 = 0; // YES

NSLog (@"%i", b);

NSLog (@"%i", test(YES));

return 0;
}








你可能感兴趣的:(黑马程序员_Objective-C基础知识)