09_传智播客iOS视频教程_自动释放池与NSLog函数
不要管什么是自动释放池,现在给你讲你也听不懂。就业班才讲,不要知道太多,知道太多对你不好。电影里面死的最惨的人就是知道最多的人。把代码写到自动释放池里面就可以了。NSLog是printf的增强版,它增强在什么地方?
//
// main.m
// Day01-OC基础语法
//
// Created by blueheart on 17/7/2.
// Copyright © 2017年 itcast. All rights reserved.
//
/*
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框架中的所有的函数和类就可以直接使用.
6. @autoreleasepool是自动释放池. 你只需要知道这个是1个自动释放池. 你可以将代码写在自动释放池之中 或者干脆把这个自动释放池删除 目前不会有任何影响.
7. NSLog函数.
1). 作用: 是printf函数的增强版. 向控制台输出信息.
2). 语法:
NSLog(@"格式控制字符串",变量列表);
最简单的语法:
NSLog(@"要输出的信息");
3). 增强:
a. 输出一些调试相关信息. 2017-07-06 00:42:34.173 Day01-OC基础语法[440:4804] Hello,World!Program ended with exit code: 0
执行这段代码的时间.173毫秒.
程序的名称.
440:4804是进程的号码 进程的编号 每一个正在运行的程序都是一个进程 如果你说起windwos操作系统的话 你知道有一个任务管理器
在任务管理器可以看到每一个进程它占用的CPU的消耗 实际上这个mac也有一个叫做活动管理器 XCode运行起来也是一个进程
进程编号. 456是进程编号.
线程编号. 4804是线程编号.
输出的信息. NSLog相对于printf()函数它做的第一个增强.
b. 会自动换行.在输出完信息之后 会自动换行.
c. printf()函数可以输出变量的值 OC中新增了一些数据类型. 新增的这些数据类型只能使用NSLog来输出它的值. 不能用printf() NSLog函数不仅仅可以输出C数据类型变量的值还可以输出OC新增的数据类型的变量的值.
4). 用法: 和printf()函数的用法其实是差不多的.printf()函数可以输出变量的值.NSLog一样可以输出变量的值 并且占位符和用法 都一样
5).使用注意:
a. NSLog函数的第1个参数前面必须要加1个@符号. b. 如果手贱在字符串的末尾加了1个‘\n’代表换行 那么函数的自动换行功能就会失效. ------
忘记#include 用#import
忘记printf 用NSLog */
#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, 传智播客!");
//}
//printf("Hi.......");//可以写printf,因为在OC当中是完全兼容C的.
//NSLog(@"Hello,World!");
//float f1 = 12.12;
//NSLog(@"jack");//输出jack
//
//
//
//
//假如中间有个五万次循环 CPU在执行的时候它花了多少时间 后面经常可能要考虑到性能中的原因 我就要测一下这段代码到底花了多长时间来执行
//程序名怎么用 多个target可以一起执行 我们现在同时只能执行一个target 后面学习高级调试的时候多个target同时执行.有一个问题 怎么知道这句话是哪个target输出的呢?
//float f1 = 12.12;//不加f是个double类型的 它在内存当中占据8个字节 加了f就是float性质的 它占4个字节
float f1 = 12.12f;
//NSLog(@"jack f1 = %f",f1);
//NSLog(@"我爱广州\n");
//NSLog(@"我爱广州\n\n");
NSLog(@"我爱\n广州");
//NSLog(@"jack");//输出jack
//NSLog(@"Hello,World!"); return ;
}
09_传智播客iOS视频教程_自动释放池与NSLog函数的更多相关文章
- 06_传智播客iOS视频教程_源文件后缀名和main函数
OC与C语言的不同. 把OC程序运行起来,CPU只会找main函数.并且只会执行main函数当中的代码.当main函数的代码执行完毕之后这个程序就自动结束掉了. main函数的参数是可以让我们在运行程 ...
- 12_传智播客iOS视频教程_注释和函数的定义和调用
OC的注释和C语言的注释一模一样.它也分单行注释和多行注释. OC程序里面当然可以定义一个函数.并且定义的方式方法和调用的方式方法和我们C语言是一模一样的.OC有什么好学的?一样还学个什么呢? 重点是 ...
- 07_传智播客iOS视频教程_#import指令
mac切换中英文输入法默认是Ctrl+空格键. 预处理指令的执行时机是在编译之前.在编译之前执行预处理指令. #import指令是包含文件,将指定的文件的内容在预编译的时候拷贝到写指令的地方. #im ...
- 01_传智播客iOS视频教程_课程介绍与知识点回顾
OC语法中static关键字不能修饰属性,也不能修饰方法,只能修饰方法中的局部变量.static修饰局部变量之后把局部变量变成静态变量.当方法执行完之后这个变量不会被回收.下次再执行这个方法的时候这个 ...
- 05_传智播客iOS视频教程_第一个OC程序
Cocoa Application开发的是带界面的程序. OC是完全兼容C语言的,但是C语言里面是不能写OC的东西的. OC和C的第一个区别,就是源文件的后缀名的区别.OC程序的源文件的后缀名是.m, ...
- 19_传智播客iOS视频教程_类和对象
什么是类?什么是对象? 看的见.摸的着.拿过来就可以直接使用.例如报纸就是一个对象. 学生这个东西可不可以只是指一个?就只有那一个才是学生.不是的,学生是有很多个的.它是对一类人的统称.类是统称.所以 ...
- 08_传智播客iOS视频教程_Foundation框架
比如产生随机数.这个功能要你写吗?不用,因为苹果已经写好了.后面想开发一个ios程序,往界面上放一个按钮,实际上这个按钮不用你写别人已经写好了,你就拿过来拖一下就可以了. 框架是1个功能集 苹果或者第 ...
- 11_传智播客iOS视频教程_NS前缀和@符号
NS前缀的有NSLog和NSString Cocoa就是用来开发带界面的应用程序. Foundation框架之中的类.函数绝大多数都是从NextStep来的.看到NS前缀就知道这个类是从哪里来的.是很 ...
- 10_传智播客iOS视频教程_NSString
从今天开始不会再去用C语言当中的字符串.因为OC当中设计了一种更为好用的存储字符串的变量. C的字符串和OC的字符串是有区别的. NSString类型的指针变量,只能存储OC字符串的地址.第一步是声明 ...
随机推荐
- ubuntu使用git的时:Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.
1:问题现象: hlp@hlp:~/code/github_code/catch_imooc1$ git push origin master Warning: Permanently added t ...
- BZOJ 2440 莫比乌斯函数+容斥+二分
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 5473 Solved: 2679[Submit][Sta ...
- web.py 使用 db.select 返回的数据只能遍历一次
2013-10-05 23:04:33| 1. web.py 使用 db.select 返回的数据只能遍历一次import webdb = web.database(dbn='mysql', db ...
- java基础 4 继承(1)抽象类与接口的区别
抽象类: 是用来捕捉子类的通用特性的,至少包含一个抽象方法,该抽象方法必须在子类中实现,由于抽象类没有抽象方法的具体实现,因此不能对抽象类进行实例化. 接口: 定义了一组方法,是抽象方法的集合,但是接 ...
- 转:Linux中的内存管理
前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...
- MySQL中的数据类型的长度范围和显示宽度(转)
长度范围是随数据类型就已经是固定的值,而显示宽度与长度范围无关. 以下是每个整数类型的存储和范围(来自MySQL手册) 类型 字节 最小值 最大值 (带符号的/无符号的) (带符号的/无符号的) TI ...
- Meteor跟踪器(Tracker)
跟踪器是用于当模板会话变量发生了变化自动更新的一个小型库. 为了向你展示跟踪器是如何工作的,我们将创建按钮将用于更新会话. meteorApp/import/ui/meteorApp.html < ...
- iptables防火墙以及网络协议基本原理
一. Linux 网络安全模型 1. 防火墙: 工作在主机或者网络边缘,对进出报文使用实现定义的规则进行检测,并且由匹配的规则进行处理的一组硬件或者软件.也可能两者结合. 1) 通常使用的防火墙设备 ...
- input 文本框禁止输入表情
js在用户输入表情时自动过滤掉 <input type="text" id="input" maxlength="10"/> v ...
- 搭建Maven私服(使用Nexus)
搭建私服能够做什么? 1.假设公司开发组的开发环境所有内网.这时怎样连接到在互联网上的Maven中央仓库呢? 2.假设公司常常开发一些公共的组件.怎样共享给各个开发组.使用拷贝方式吗?假设这样,公共库 ...