比如产生随机数。这个功能要你写吗?不用,因为苹果已经写好了。后面想开发一个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. Codevs 队列练习 合并版

    3185 队列练习 1  时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这 ...

  2. php的抽象类

    php的抽象类 //定义一个老虎类 abstract class Tiger{ public abstract function climb(); } //定义一个孟加拉虎类 class MTiger ...

  3. POJ 2965 The Pilots Brothers' refrigerator【BFS+状压 Or 脑洞】

    题目链接: http://poj.org/problem?id=1753 题意: 给定冰箱门的开关情况,改变一个门则其所在行列的门都会发生改变,求出改变门的最少操作使得最终所有门都是打开状态. 代码: ...

  4. Excel小tips - 如何设置表格输入数字后末尾自动添加%

    选中一列——鼠标右键——设置单元格格式——数字——自定义——0% 按照以上操作完成后,点击确定,就大功告成了.

  5. 关于maven多个模块的build顺序 [INFO] Reactor Build Order

    对于一个maven项目,如果有多个模块,那么它们的执行顺序是什么样的呢? 在执行mvn操作的时候,你可以看到如下信息,这个便是maven的build顺序 那么maven是如何决定顺序的呢?如下: 在多 ...

  6. c++之函数对象、bind函数

    函数对象实质上是一个实现了operator()--括号操作符--的类. class Add { public: int operator()(int a, int b) { return a + b; ...

  7. [TypeScript] Transform Existing Types Using Mapped Types in TypeScript

    Mapped types are a powerful and unique feature of TypeScript's type system. They allow you to create ...

  8. Centos java 安装

    第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java versi ...

  9. CF 234 C Weather(粗暴方法)

    C. Color Stripe time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  10. ZrcListView

    https://github.com/zarics/ZrcListView