先来介绍一下历史背景,Cocoa和Objective-C是苹果公司Mac OS X操作系统的核心。虽然Mac OS X相对较新,但Objective-C和Cocoa的推出已有时日。早在20世纪80年代早期,Bard Cox就发明了Objective-C,意在将流行的,可移植的C语言与优雅的Smalltalk语言结合在一起。1985年,Steve Jobs成立了NeXT公司,致力于开发强大且经济的工作站。NeXT选择Unix作为其操作系统,创建了NextSTEP(使用Objective-C 开发的一款强大的用户界面工具包)。NextSTEP只是创造了一些特性,拥有少量忠实拥趸,并未在商业上获得成功。1996年,苹果公司收购NeXT之 后,NeXTSTEP被重命名为Cocoa,并得到推广。Objective-C只不过是拥有一些附加特性的C语言,有相关知识的童鞋们应该很快就能上 手!"Hello Word"从来都是经典中的经典!今天我们就来个"Hello Objective-C"吧。

启动Xcode(版本:4.3.2),从File菜单中选择New->Project...->Mac OS X->Command Line Tool

单击Next->在Product Name文本框输入Hello Objective-C->Next->选择你要保存项目的地方->Create,生成项目。我们看一下项目生成之后的项目文件清单

我们可以看到,在Hello Objective-C项目中,包含三个主要的文件夹:

1.Hello Objective-C:项目源文件的存储文件夹,main.m源文件包含项目的主要代码

2.Frameworks:该文件夹包含项目引用的框架

3.Products:包含该项目生成的安装程序

让我们来单击源文件main.m,看一下项目的主要代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

@autoreleasepool {
        
        // insert code here...
        NSLog(@"Hello, Objective-C!");
        
    }
    return 0;
}

#import <Foundation/Foundation.h>:引用Foundation框架

int main(int argc, const char * argv[]):作为程序的入口,返回整型类型

return 0:返回0,表示程序结束

@autoreleasepool:自动释放池,释放程序生成的各种资源,以后详述

NSLog(@"Hello, Objective-C!"):输出字符串Hello, Objective-C。这里要讲述一下两个要点:

1.是不是觉得NSLog()似曾相识,没错,其实这个方法与C语言中的Log()功能是一样的,都是输出文本。

这 里的NS正是代表着NeXTSTEP,所以函数前面具有NS,一般代表着Objective-C所特有的函数。

2.@"Hello, Objective-C!"表示一串字符串,这并不是Objective-C所特有的;就好像在C#里面就有:

@"\nHello Word"就有另外的一个效果,把转义字符\n(换行)强制用字符表示,没有了换行的效果,

所以输出的时候就有:\nHello Word。说回Objective-C,用@""只表示字符串,并没有特殊的用途,

如果去掉@,程序就会报错!

好,现在我们运行一下程序,单击XCode左上角带有黑色三角形的圆形按钮,看一下,我们程序的输出:

程序完满结束!

转载于:https://www.cnblogs.com/ios8/archive/2012/07/26/Objective-C-Hello.html

Objective-C征途:Hello Objective-C相关推荐

  1. Objective C范型

    范型 范型编程是一种程序语言设计范式,它允许程序员在使用强类型的语言编写代码的时候,延迟确定具体的类型. 以Swift代码为例,假如有一个需求是要交换两个int,很容易写出类似代码 func swap ...

  2. 如何在企业推行OKR?

    对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买.构建和维护基础设施和应用程序的需要. SaaS不仅减少了或取消了传统的软件授权费用,而且厂商将应用软件部署在统一的服务器上,免 ...

  3. ICLR2020 | StructBERT : 融合语言结构的BERT模型

    今天给大家介绍阿里巴巴达摩院在ICLR2020的一篇论文,该研究针对预训练语言模型BERT在预训练任务中忽略了语言结构的问题,作者对BERT进行扩展,通过加入语言结构到预训练任务中,其核心思想是在预训 ...

  4. Object-C与Swift混合开发

    Object-C作为Apple的iOS App开发语言服务了很多个年头,2014年Apple推出了新的编程语言Swift.更高效更安全的口号再次吸引了一大批非iOS开发程序猿进入,小编觉得Swift代 ...

  5. python下载安装教程mac-教程|如何在mac上为Python安装XGBoost!

    原标题:教程|如何在mac上为Python安装XGBoost! 摘要:XGBoost是一个开发非常快速和准确的梯度增强模型的库,它在Kaggle数据科学竞赛中被大量的kaggle选手选用,其中包括两个 ...

  6. MATLAB应用实战系列NSGA-II多目标优化算法原理及应用实例(附MATLAB代码)

    前言 NSGA-Ⅱ是最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准. NSGA-Ⅱ算法是 Srinivas 和 D ...

  7. ML之RFXGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)

    ML之RF&XGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 比赛结果 设计思路 核心代码 ...

  8. ML之RFXGBoost:分别基于RF随机森林、XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)

    ML之RF&XGBoost:分别基于RF随机森林.XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 ...

  9. ML之Xgboost:利用Xgboost模型对数据集(比马印第安人糖尿病)进行二分类预测(5年内是否患糖尿病)

    ML之Xgboost:利用Xgboost模型对数据集(比马印第安人糖尿病)进行二分类预测(5年内是否患糖尿病) 目录 输出结果 设计思路 核心代码 输出结果 X_train内容: [[ 3. 102. ...

  10. Py之lightgbm:lightgbm的简介、安装、使用方法之详细攻略

    Py之lightgbm:lightgbm的简介.安装.使用方法之详细攻略 目录 lightgbm的简介 lightgbm的安装 lightgbm的使用方法 1.class lightgbm.Datas ...

最新文章

  1. 机器学习常用术语词汇表
  2. nginx 反向代理和负载均衡策略实战案例
  3. html制作虚拟人物,一种虚拟人物角色直播系统的制作方法
  4. Laravel 5 中间件、路由群组、子域名路由、 权限控制的基本使用方法
  5. Spirng MVC +Velocity 表单绑定命令对象
  6. 把光盘转化成镜像文件
  7. Linux编程练习 --多线程4--条件变量
  8. python3实现国密SM4算法
  9. 转载--多核DSP快速入门
  10. iTerm2配置(rz/sz命令)
  11. 延安大学计算机学院评分,延安大学计算机学院.docx
  12. Linux中du命令使用方法
  13. 结构化数据与非结构化数据有什么区别?
  14. [已解决]smallbin double linked list
  15. conda SSL错误 SSLError,爬虫应用总结
  16. 探索iptables BPF模块的悲惨历程
  17. 有趣的海盗问题(完整版)
  18. 如何给无光驱无软驱无USB启动的老笔记本装系统
  19. 【CSS3 】css样式的计算calc属性
  20. 下载追踪:如何监测APP的来源渠道数据

热门文章

  1. [WPF疑难] 继承自定义窗口
  2. jquery1.9学习笔记 之选择器(基本元素四)
  3. spring配置文件-------通配符
  4. FAT32格式和NTFS有什么区别
  5. cfg桩设备型号_什么是CFG桩?带您看下CFG桩施工工艺及流程,检测项目
  6. python列表相关函数_python中列表(list)相关的函数
  7. 收藏100个网络基础知识
  8. 后端开发应该掌握的 Redis 基础
  9. SQLl中的left join、right join、inner join详解
  10. linux 信号和信号量编程