我曾经的第一个OC程序
一、 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)
(注:参考于传智)
我曾经的第一个OC程序的更多相关文章
- [OC笔记]我的第一个OC程序
这是我第一个OC程序,详情都写在了注释里面,讲的是Student和Book这两个类的创建和使用.(是不是觉得student这个类在各种语言入门代码里经常出现呢?真实有爱) 看完这些,你会发现,咱们其实 ...
- IOS开发——01_第一个OC程序
本文目录 一.新建Xcode项目 二.运行项目 注:建议先学习C语言, 如果你还没有编程经验,看不懂的地方可以在评论区提出,本文使用的为Xcode6.1版本,与之前版本会有所差异,但总体不变. 另:还 ...
- 【Objective-C】04-第一个OC程序解析
说明:这个Objective-C专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序猿,可以高速上手Objective-C.假设你还没有编程经验,或者对Objective-C.iOS开发 ...
- 第一个OC类、解析第一个OC程序
01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 ...
- 手动创建第一个OC程序
手动创建第一个OC程序 创建一个文件夹,文件夹内创建一个a.m的OC源文件,并编辑 之前说过,OC是完全兼容C语言的,那么我们先写个下面的程序尝试一下 #include<stdio.h> ...
- 第一个OC程序
第一个OC程序源码如下: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @auto ...
- 【Objective-C】03-第一个OC程序
一.打开Xcode,新建Xcode项目 二.选择最简单的命令行项目 因为我们只是学习OC语法,还未正式进入iOS开发,所以选择命令行项目即可 三.输入项目名称,选择Foundation框架进行创建项目 ...
- 02第一个OC程序
一.打开XCode4.6.3,新建项目 二.选择Application下的命名行项目 三.输入项目名称,选择Foundation框架创建项目,点击Next 四.二话不说.点击Run.启动我们创建的项目 ...
- 05_传智播客iOS视频教程_第一个OC程序
Cocoa Application开发的是带界面的程序. OC是完全兼容C语言的,但是C语言里面是不能写OC的东西的. OC和C的第一个区别,就是源文件的后缀名的区别.OC程序的源文件的后缀名是.m, ...
随机推荐
- SQL--存储过程
声明和调用有返回值的存储过程 分页存储过程 转账的存储过程:
- dp --- hdu 4939 : Stupid Tower Defense
Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- 在MVC中使用async和await的说明
首先,在mvc中如果要用纯异步请不要使用async和await,可以直接使用Task.Run. 其次,在mvc中使用async和await可以让系统开新线程处理Task的代码,同时不必等Task执行结 ...
- C# 解析html —— 将html转为XHTML,然后利用Xml解析
呵呵,由于正则不熟,所以另谋出路——利用XML去解析html. 要想将抓取到的数据(直接抓取到的是byte[]) 转为XML文档(即XMLDocument对象),有两个要点: 一.判断编码(http ...
- C#常用类库
1.0 TimeSpan TimeSpan passTime = (TimeSpan)(DateTime.Now - curUser.refuseTime); if (passTime.Days * ...
- EasyUI datagrid 行编辑
一.HTML: <div class="info"> <div class="info_tt"> <span class=&quo ...
- 在_Layout模版中使用@Styles.Render()没有效果
刚才有测试一个功能,就是在_Layout母版中使用了@Styles.Render()时行Render样式文件,所有在此母版下的视图均没有应用到样式,没有效果.是什么原因? 经查证资料,原来Insus. ...
- jQuery实用的语法总结
1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...
- 紫橙绿蓝的jQuery幻灯片切换
效果展示 http://hovertree.com/texiao/jquery/77/ 看惯了左右切换的幻灯片,何问起向您推荐一个新颖的,旋转切换,通过点击按钮的相应区域可以使幻灯片以旋转的方式来 ...
- 介绍开源的.net通信框架NetworkComms框架 源码分析(十八 ) ConnectionListenerBase
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...