示例一 (类似C)

//1.代码编写
//跟C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中.比如这里写到一个main.m文件中(文件名可以是中文)
#include <stdio.h>
int main() {
printf("Hello world\n");
return ;
} //2.终端指令
cc -c main.m //编译
cc main.o //链接
./a.out //运行

示例二 (不同C)

//1.代码编写
//跟C语言不一样的,使用NSLog函数输出内容
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Hello world");
return ;
} //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.#inprot的作用

跟#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.多个.m文件的开发

//跟C语言中多个.c文件的开发是一样的
//编写3个文件
main.m
#import "one.h"
int main(){
test();
return ;
} one.h
void test(); one.m
#import <Foundation/Foundation.h>
void test(){
NSLog(@"调用了test函数");
} //终端指令
cc -c main.m test.m //编译
cc main.o test.o -framework Foundation //链接
./a.out //运行

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

//编写3个文件
main.m
#import "one.h"
int main(){
test();
return ;
} one.h
void test(); one.c
#include <stdio.h>
void test(){
printf("调用了test函数\n");
} 终端指令
cc -c main.m test.m //编译
cc main.o test.o //链接 没有使用Foundation框架的话,就不用-framework Foundation
./a.out //运行

Objective-C 第一个小程序的更多相关文章

  1. TODO:即将开发的第一个小程序

    TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能, ...

  2. Maven的第一个小程序

    这里是介绍关于maven的第一个小程序 关于maven的安装 : Install Maven in your computer 先看看目录结构: 这是本来的项目目录结构,由于maven有自己的目录结构 ...

  3. 微信小程序-----安装,编写第一个小程序和运行到手机端

    第一步: 微信公众平台注册账号,并选择小程序,网址:mp.weixin.qq.com 填写相关信息,如:主体类型(个人或者企业) AppID  在开发中都是用的到的,服务器域名在网络请求也是用的到的. ...

  4. Struts2学习笔记——Struts2搭建和第一个小程序

    1.新建web项目 2.配置Struts2核心过滤器 (1)打开web.xml文件,做以下配置: <?xml version="1.0" encoding="UTF ...

  5. 自学Android的第一个小程序(小布局、button点击事件、toast弹出)

    因为上班,学习时间有限,昨晚才根据教程写了一个小程序,今天忙里偷闲写一下如何实现的,来加深一下印象. 首先创建一个Android项目, 通过activity_xxx.xml布局文件来添加组件来达到自己 ...

  6. 动手搭建第一个小程序音视频Demo

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:小程序音视频产品经理 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序,但是再好的源码和文档也有学习成本,为了尽快的能调试起 ...

  7. 微信小程序——创建自己的第一个小程序【一】

    注册 微信小程序注册 https://mp.weixin.qq.com/wxopen/waregister?action=step1   填写账号信息  作为登录帐号,请填写未被微信公众平台注册,未被 ...

  8. python3速查参考- python基础 1 -> python版本选择+第一个小程序

    题外话: Python版本:最新的3.6 安装注意点:勾选添加路径后自定义安装到硬盘的一级目录,例如本人的安装路径: F:\Python 原因:可以自动添加python环境变量,自动关联.py文件,其 ...

  9. Python 的第一个小程序

    F盘   新建文本文档 hello.txt 内容为: print("hello world! hello 2018!"); 打开CMD cd c:\                 ...

  10. [开源]入坑Qt,我的第一个小程序:MD5计算器

    版权声明 --------- 本文仅在知乎与博客园发布.开发者为szx0427 MFC和Win32搞了好几年了,也算是懂了个皮毛,但是一直觉得用这两者开发软件都很麻烦,需要将大量的代码花费在UI等地方 ...

随机推荐

  1. vue.js加入购物车小球动画

    生成一个动画小球的div,并且生成五个小球,五个是为了生成一定数量的小球来作为操作使用,按照小球动画的速度,一般来说五个也可以保证有足够的小球数量来运行动画 动画的内容分别是外层和内层,外层控制动画小 ...

  2. 利用arduino给PCB800099液晶驱动板烧录程序

    某宝上购买了一块PCB800099液晶驱动板, 卖家出货的时候刷的驱动不对,遂需要重新烧录程序 可是苦于没有编程器,寻遍网络后找到几种解决方案: arduino刷,树莓派I2C口刷,linux下用vg ...

  3. generator 函数

    可以看做一个状态机, 生成的是一个迭代器对象, 可以用来遍历状态机里面的各种状态 创建方式 在函数名前面添加 * , 内部使用 yeild 来标注状态 特性 yield 只能在 generator 中 ...

  4. [LuoguP2900] [USACO08MAR]土地征用(Land Acquisition)

    土地征用 (Link) 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比 ...

  5. Multicast Routing

    Multicasting Source S sends packets to multicast group G1 (and minimize the number of copies) Revers ...

  6. DB数据源之SpringBoot+MyBatis踏坑过程(六)mysql中查看连接,配置连接数量

    DB数据源之SpringBoot+MyBatis踏坑过程(六)mysql中查看连接,配置连接数量 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之SpringBoot+Mybati ...

  7. CF1066B Heaters(贪心)

    题意描述: Vova先生的家可以看作一个n×1的矩形,寒冷的冬天来了,Vova先生想让他的家里变得暖和起来.现在我们给你Vova先生家的平面图,其中111表示这个地方是加热炉,0表示这个地方什么也没有 ...

  8. mysql学习记录,CASE WHEN THEN ELSE END用法

    记mysql,case when then else end用法 用法1:搜索函数 SELECT r.order_no, r.golds, r.pay_tool, , ) ) END AS price ...

  9. layui layer.open() 弹层开启后 Enter回车 遮罩层无限弹处理

    解决方案: 增加success回调及其内容 如下: layer.open({ title:'更新论坛信息', type: 1, skin: 'layui-layer-rim', area: ['500 ...

  10. eclipse 安装 lombok

    转载自http://bbs.itmayiedu.com/article/1527769518449 由于项目中有 @Slf4j 注解等,而 eclipse 需要安装 lombok 插件才能正常编译.由 ...