比如产生随机数。这个功能要你写吗?不用,因为苹果已经写好了。后面想开发一个ios程序,往界面上放一个按钮,实际上这个按钮不用你写别人已经写好了,你就拿过来拖一下就可以了。

框架是1个功能集 苹果或者第三方事先将一些程序在开发程序的时候经常要用到的功能事先写好.把这些功能封装在1个1个的类或者函数之中.主要是类.

一个框架就是一个功能集。这个功能集苹果写了很多功能在里面。我们要使用这些功能的话不需要去写直接调用就可以了。功能集合。

后面会学很多框架,不同的框架里面的功能是用来完成不同的事情的。

Foundation框架里面肯定有很多类或者是函数。每一个函数提供不同的功能。每一个类提供不同的功能。里面的功能很牛逼,以你目前的道行肯定写不出来的。要用的功能不需要自己写只要直接调用就可以了。

Foundation框架里面提供了一些最基础的功能。包括一些最常用的类都是定义在Foundation框架里面。

C语言里面说过,要用函数库里面的一个函数的话,要把函数的头文件引进来。如果你要使用Foundation框架里面的东西的话,你要把Foundation框架里面的头文件引进才可以。


#import <Foundation/Foundation.h>

看起来是要把这个文件的内容包含到写指令的地方。Foundation指的是Foundation框架,就是把Foundation框架里面的Foundation.h这个头文件包含到我们就可以了。

#import <Foundation/Foundation.h>

实际上是把Foundation.h这个头文件所有的内容全部的拷贝到这个地方。

Foundation框架里面有很多头文件。 在Foundation.h这个头文件里面包含了其他的所有的头文件。所以你只要去包含这个Foundation.h就相当于把Foundation框架中的所有的头文件都包含了。因为Foundation.h里面包含了Foundation框架当中其他的头文件。所以你只要包含Foundation.h,就相当于包含了Foundation框架当中的所有的头文件。

/*
1.OC相对于C
a.在C的基础之上新增了一小部分面向对象的语法.
b.将C的复杂的、繁琐的、可恶的语法封装的更为简单.
c.OC完全兼容C语言.
2.OC程序的源文件的后缀名是.m m代表message 代表OC中最重要的1个机制 消息机制.
C程序的源文件的后缀名.c
3.main函数仍然是OC程序的入口和出口. int类型的返回值 代表程序的结束状态.返回值0是正常结束.
main函数的参数:仍然可以接收用户在运行程序的时候传递数据给程序内部.
参数也可以不要.
4. #import指令
1).以#号开头,是一个预处理指令.
2).作用: 是#include指令的增强版. 将文件的内容在预编译的时候拷贝到写指令的地方.
3).增强: 同1个文件无论#import多少次,只会包含一次.
如果#include指令要实现这个效果 就必须要配合条件编译指令来实现.
而#import指令只需要直接包含就可以 其他什么都不用做.
4).简要原理: #import指令在包含文件的时候,底层会先判断这个文件是否被包含 如果被包含就会略过 否则才会包含.
5. 框架
1). 是1个功能集 苹果或者第三方事先将一些程序在开发程序的时候经常要用到的功能事先写好.把这些功能封装在1个1个的类或者函数之中.
这些函数和类的集合久叫做框架. 有点像c语言的函数库.
2). Foundation框架. Foundation: 基础 基本. 这个框架中提供了一些最基础的功能 输入和输出. 一些数据类型. Foundation.h的路径: /Volumes/Xcode/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/Foundation.h Foundation.h这个文件中包含了Foundation框架中的其他的所有的头文件.
所以,我们只要包含Foundation.h,就相当于包含了Foundation框架中所有的头文件.
那么Foundation框架中的所有的函数和类就可以直接使用. */
#import <Foundation/Foundation.h>
//#include "itcast.h"
//#include "itcast.h"
//#include "itcast.h"
//#include "itcast.h"
#import "itcast.h"
#import "itcast.h"
#import "itcast.h"
#import "itcast.h"
#import "itcast.h"
#import "itcast.h"
#import "itcast.h"//无论import多少次 最终编译器只会把文件的内容包含一次 这就是import指令牛叉的地方
//int main(int argc, const char * argv[]) {
int main() {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, 传智播客!");
}
return ;
}
//
// itcast.c
// Day01-OC基础语法
//
// Created by blueheart on 17/7/3.
// Copyright © 2017年 itcast. All rights reserved.
// #include "itcast.h"
//
// itcast.h
// Day01-OC基础语法
//
// Created by blueheart on 17/7/3.
// Copyright © 2017年 itcast. All rights reserved.
// #ifndef itcast_h
#define itcast_h #include <stdio.h> #endif /* itcast_h */

08_传智播客iOS视频教程_Foundation框架的更多相关文章

  1. 11_传智播客iOS视频教程_NS前缀和@符号

    NS前缀的有NSLog和NSString Cocoa就是用来开发带界面的应用程序. Foundation框架之中的类.函数绝大多数都是从NextStep来的.看到NS前缀就知道这个类是从哪里来的.是很 ...

  2. 12_传智播客iOS视频教程_注释和函数的定义和调用

    OC的注释和C语言的注释一模一样.它也分单行注释和多行注释. OC程序里面当然可以定义一个函数.并且定义的方式方法和调用的方式方法和我们C语言是一模一样的.OC有什么好学的?一样还学个什么呢? 重点是 ...

  3. 10_传智播客iOS视频教程_NSString

    从今天开始不会再去用C语言当中的字符串.因为OC当中设计了一种更为好用的存储字符串的变量. C的字符串和OC的字符串是有区别的. NSString类型的指针变量,只能存储OC字符串的地址.第一步是声明 ...

  4. 09_传智播客iOS视频教程_自动释放池与NSLog函数

    不要管什么是自动释放池,现在给你讲你也听不懂.就业班才讲,不要知道太多,知道太多对你不好.电影里面死的最惨的人就是知道最多的人.把代码写到自动释放池里面就可以了.NSLog是printf的增强版,它增 ...

  5. 07_传智播客iOS视频教程_#import指令

    mac切换中英文输入法默认是Ctrl+空格键. 预处理指令的执行时机是在编译之前.在编译之前执行预处理指令. #import指令是包含文件,将指定的文件的内容在预编译的时候拷贝到写指令的地方. #im ...

  6. 06_传智播客iOS视频教程_源文件后缀名和main函数

    OC与C语言的不同. 把OC程序运行起来,CPU只会找main函数.并且只会执行main函数当中的代码.当main函数的代码执行完毕之后这个程序就自动结束掉了. main函数的参数是可以让我们在运行程 ...

  7. 01_传智播客iOS视频教程_课程介绍与知识点回顾

    OC语法中static关键字不能修饰属性,也不能修饰方法,只能修饰方法中的局部变量.static修饰局部变量之后把局部变量变成静态变量.当方法执行完之后这个变量不会被回收.下次再执行这个方法的时候这个 ...

  8. 13_传智播客iOS视频教程_OC程序的编译链接

    C程序的编译.链接.执行怎么来的?在.C文件里面写上符合C语言部分的源代码.OC也是一样的.记住:OC程序的后缀名是.m. 为什么要链接?第一个.o的目标文件里面它启动不了.因为它没有启动代码我们要加 ...

  9. 05_传智播客iOS视频教程_第一个OC程序

    Cocoa Application开发的是带界面的程序. OC是完全兼容C语言的,但是C语言里面是不能写OC的东西的. OC和C的第一个区别,就是源文件的后缀名的区别.OC程序的源文件的后缀名是.m, ...

随机推荐

  1. firefox自动化测试的常用插件

    1.firebug 2.firepath 3.firefinder 5.WebDriver Element Locator 提供多种语言的xpath路径

  2. google play上获取apk文件

    先说一种测试不通过的方法(chrome浏览器添加Direct APK downloader拓展程序),浪费了我很多的时间,结果发现根本用不了,记录一下过程给大家参考. 使用chrome浏览器,点击左上 ...

  3. 有向图欧拉回路个数 BEST定理

    有向图欧拉回路个数 BZOJ 3659 但是没有这道题了  直接贴一个别人的板子吧 欧拉回路:存在一条路径经过所有的边刚好1次 有向图欧拉回路存在充要条件:①图连通:②对于所有点都满足出度=入度 BE ...

  4. 2017CodeM初赛A场

    A.最长树链(loj6159) 分析: 对于每个质因数,取出所有是它倍数的点组成一个树,然后找最长路径 每个数操作次数是其质因数的个数 所以总的复杂度不超过O(nlogA) B.二分图染色(loj61 ...

  5. java基础语法——方法,static关键字

    一:方法: 1.什么是方法: 通俗地讲,方法就是行为.它是完成特定功能的代码块能执行一个功能.它包含于类和对象中. 2.为什么要有方法: *提高代码的复用性. *提高效率 *利于程序维护 3.命名规则 ...

  6. 异常处理(try catch throw)详解(C++)

    选择异常处理的编程方法的具体原因如下: 1.把错误处理和真正的工作分开来: 2.代码更易组织,更清晰,复杂的工作任务更容易实现: 3.毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了: 4 ...

  7. DTRACE FOR MYSQL PHP

    Using DTrace to troubleshoot Apache DTrace for MySQL , Inspecting MySQL with DTrace , MySQL DTrace P ...

  8. java去空格

    1.trim()是去掉首尾空格    2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间    3.或者replaceAll(&quo ...

  9. 偏差-方差分解Bias-Variance Decomposition

    转自: http://www.cnblogs.com/jmp0xf/archive/2013/05/14/Bias-Variance_Decomposition.html

  10. HTML的DIV如何实现垂直居中

    外部的DIV必须有如下代码 display:table-cell; vertical-align:middle;   这样可以保证里面的东西,无论是DIV还是文本都可以垂直居中