黑马程序员 03-第二个OC程序

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

1、代码编写

以下是第二个OC程序:

 1 #import <Foundation/Foundation.h>
 2
 3 int main()
 4 {
 5     //NSLog输出内容会自动换行
 6     //NSL3个字母都是大写
 7     //@和""之间不能有空格
 8     NSLog(@"第2个OC程序!!!");
 9     
10     return 0;
11 }

2、终端指令

  1. cc  -c main.m
  2. cc main.o -framework Foundation

    (只有用到了Foundation框架才需要加上-framework Foundation)

  1. 运行 ./a.out

3、NSLog 和 printf 的区别

  1. 使用NSLog需要#import <Foundation/Foundation.h>
  2. 使用printf需要#include <stdio.h>
  3. NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
  4. NSLog输出后会自动换行,printf输出后不会自动换行

4、#import的作用

  1. 跟#include一样,用来拷贝某个文件的内容。
  2. 可以自动防止文件内容被拷贝多次,也就意味着头文件中不用加入下面的预处理指令了

#ifndef     _STDIO_H_

#define    _STDIO_H_

#endif

//NSObjCRuntime.h中有NSLog函数的声明

#import <Foundation/NSObjCRuntime.h>

<>中 /之前的部分表示的是框架名, /之后的部分表示的是框架内部的 .h头文件。

  1. #import是#include的升级版,以后我们都用#import。

5、Foundation框架的作用

 #import <Foundation/Foundation.h>
  1. 开发OC、iOS、Mac程序必备的框架。
  2. 此框架中包含了很多常用的API(应用程序借口)。
  3. 框架包含了很多头文件,若想使用整个框架,包含它的主头文件即可。
  4. Foundationl框架的存放路径:
    • 右击Xcode.app --> 显示包内容
    • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer

     /SDKs/iPhoneOS.sdk/System/Library/Frameworks/Foundation.framework/Headers

  1. 主头文件

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

    注意:不要随便增删东西

本节重点

  1. C语言使用printf函数输出内容;OC语言使用NSLog函数输出内容,并且NSLog输出内容会自动换行。
  2. NSLog输出语句中@和""之间不能有空格。
  3. 只有用到了Foundation框架,链接的时候才需要加上-framework Foundation。
  4. #import可以自动防止文件内容被拷贝多次,以后都用#import。
  5. 只需要包含Foundation框架的主头文件,就可以使用整个框架的东西。
时间: 2024-08-24 02:51:43

黑马程序员 03-第二个OC程序的相关文章

【黑马程序员】————简单的OC程序

一.  OC简介 C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 二.  OC语法预览 1.      关键字 基本上所有关键字都是以@开头 下面列举一些常见的关键字,看一眼就行了,不用去翻资料查找它们的含义 @interface.@implementation.@end @public.@protected.@private.@selector @try.@catch.@

程序员生存定律-六个程序员的故事(1)

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------- 此前的章节基本上是在分析并试图建立一种成长的模型,为免这种分析和模型离开现实,下面将考查一些具体的,程序员的故事,看的话最好把这六个故事都看完,否则容易片面. 很多人更喜欢看名人的故事,比如李开复老师的故事.这必然是有帮助的,但可参照意义往往并没有想象的那

做什么职业,也别做程序员,尤其是Java程序员

千万别做程序员,尤其别做Java这种门槛低,入门快的程序员(别跟我说Java搞精通了也很牛之类的,原因不解释,做5年以上就知道了),程序员本来就是我见过最坑爹的职业了...Java程序员更是,现在满地都是Java培训机构,不出3年,你就不值钱了,就像3年前的C++一样!而且Java贬值更快,因为他比c++简单多了,培训个3个月,直接上岗,你说你怎么保证自己是不可替换的?而且现在Java程序员的整体工资,已经有不断下降的趋势! 我就用我的亲身经历告诉你,你这个想转程序员的人:别做这行,因为你不知道

为什么优秀的程序员既懒又笨程序员

我们会发现这样一个有悖常理的现象:优秀的程序员都是即懒又笨的. 因为懒,他才会写出各种各样的工具来替自己干活.因为懒,他才会想办法避免去写无聊重复的代码.因此避免了代码的冗余,消减了维护的成本,使重构变得容易.最终,这些由于懒惰作用开发出的工具和最佳编程实践方法大大提升了产品的质量. 懒惰的程序员也因此变成了优秀的程序员.当然,这只是事情的一部分:从一个懒惰的程序员变成一个优秀的程序员,他/她会在学习如何能够永远保持懒惰时表现出惊人的不懒惰--也就是,什么样的软件工具能让自己干活更轻松,什么方法

漫谈程序员系列:一个老程序员的2014年终总结

人生天地之间,若白驹过隙,忽然而已.蓦然回首,头上似霜雪,脸上似山川.我的 2014 啊,你就这么毫无眷恋地离我而去了.既然往事已不可追,未来尚未到来,在这年末岁首的间隙,就让我来回忆一下余烟尚存的 2014 吧. 2014 年,对我而言,发生了很多事,不管怎样,我还是一个程序员,这是工作.生活,以及我自己,给我的标签.也许很快这个标签会泛黄.蝶化.零落成泥碾作尘,不过不论怎样,它是我青春的纪念,它仍将伴随着我继续前行. 坚持技术博客写作 看到这里,也许你笑了. 是啊,这一年我不务正业,虽然每周

NPL ( neuro-linguistic programmers 神经语言程序员) / ( Neuro-Linguistic Programming 神经语言程序学/身心语言程式学/ 神经语言程式学/ 神经语言程式)

Neuro-Linguistic Programmers 神经语言程序员 Neuro-Linguistic Programming  神经语言程序学/身心语言程式学/ 神经语言程式学/ 神经语言程式 NLP是神经语言程序学 (Neuro-Linguistic Programming) 的英文缩写.在香港,也有意译为身心语法程式学的.N (Neuro) 指的是神经系统,包括大脑和思维过程.L (Linguistic) 是指语言,更准确点说,是指从感觉信号的输入到构成意思的过程.P (Program

做什么职业,也别做程序员,尤其是Java程序员(转载)

千万别做程序员,尤其别做Java这种门槛低,入门快的程序员(别跟我说Java搞精通了也很牛之类的,原因不解释,做5年以上就知道了),程序员本来就是我见过最坑爹的职业了...Java程序员更是,现在满地都是Java培训机构,不出3年,你就不值钱了,就像3年前的C++一样!而且Java贬值更快,因为他比c++简单多了,培训个3个月,直接上岗,你说你怎么保证自己是不可替换的?而且现在Java程序员的整体工资,已经有不断下降的趋势! 我就用我的亲身经历告诉你,你这个想转程序员的人:别做这行,因为你不知道

java javaEE javaWEB J2EE程序猿是脑残的程序员,一辈子打工的程序员

这几天我越来越郁闷,现在程序猿很火----尤其javaEE成员.但是我感觉在火也是只能给人打工的程序猿. 原因 javaweb的项目都很大,没听过那个码农能单独接到什么项目.只能被人剥削. 有人不信,我来分析一下 C/C++: 都说c/c++落伍了 TMD ,也不看看现在 C/C++ 不去打工能活不,TMD ,C/C++ 随便写个小弄下就可以挂AD,实在不行可以玩反编译.TMD 不用打工,照样可以养家. PHP : mysql + PHP  随便写个小程序,实在不行,开源的cms项目太多了,自己

写给在迷茫期的程序员(尤其是Java程序员)入行了一年,感觉不知道接下来该怎么做才能继续进步了,求指教

入行了一年,感觉不知道接下来该怎么做才能继续进步了,求指教(V2EX) @kafka0102 :做技术可以学的东西太多了,只是在不同的阶段做好不同的规划,要结合当前所做的事情去做更深入或广度的学习.以Java Web开发为例,至少可以拓展的点有: 1.Web框架的原理学习,比如Spring.Play等等,最好自己能写出个简易的MVC框架(几千行代码).这样至少对常用设计模式.反射等技术很熟练了. 2.优秀代码研读.比如Java集合类.JUnit.Spring等源码,写出源码分析,会有很多收获.源