10_传智播客iOS视频教程_NSString
从今天开始不会再去用C语言当中的字符串。因为OC当中设计了一种更为好用的存储字符串的变量。
C的字符串和OC的字符串是有区别的。
NSString类型的指针变量,只能存储OC字符串的地址.第一步是声明一个NSString的指针,
// // main.m // Day01-OC基础语法 // // Created by blueheart on 17/7/2. // Copyright © 2017年 itcast. All rights reserved. // /*1.OC相对于Ca.在C的基础之上新增了一小部分面向对象的语法.b.将C的复杂的、繁琐的、可恶的语法封装的更为简单.c.OC完全兼容C语言.2.OC程序的源文件的后缀名是.m m代表message 代表OC中最重要的1个机制 消息机制.C程序的源文件的后缀名.c3.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.hFoundation.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 用NSLog8. 字符串1) C语言的字符串的存储方式a. 使用字符数组存储b. 使用字符指针2) OC中设计了1个更为好用的用来存储字符串的1个类型. NSStringNSString 类型的指针变量 专门用来存储OC字符串的地址.3). OC的字符串常量必须要使用1个前缀@符号."jack" 这是1个C语言的字符串.@"jack" 这是1个OC的字符串常量.NSString 类型的指针变量只能存储OC字符串常量的地址 NSString类型的指针变量,只能存储OC字符串的地址.NSString *str = @"jack";4).总结a. 在OC中专门设计了1个NSString类型来存储字符串.b. 字符串分为C字符串和OC字符串.字符串如果没有@前缀 那么这个字符串常量就是1个C字符串.字符串如果有@前缀 那么这个字符串常量就是OC字符串.@"jack""rose"@符号仅仅是针对字符串常量而言的. 所以,OC字符串常量的前面必须要加1个@符号.c. NSString类型的指针变量 只能存储 OC字符串.NSString *str = @"jack";//NSString类型的指针只能去给它赋一个OC串. C的串赋给它直接报语法错误.初始化这个NSString指针的时候,记住你不要初始化一个C的串给它.5). 注意1). NSLog函数的第1个参数是1个OC字符串,所以NSLog函数的第1个实参应该以@符号开头.2). 如果要使用NSLog函数输出OC字符串的值,那么使用占位符%@*/ #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!");//NSString *str;//指针变量 NSString类型的指针变量是存储OC字符串的.//NSLog(<#NSString * _Nonnull format, ...#>);//NSLog函数的第一个参数是NSString类型的.NSLog(@"jack");//这个时候需要初始化一个字符串给它NSString *str = @"jack";//NSLog(@"大家好,我叫%s",str);//试一下并不怀孕 占位符%s是用来输出C语言的字符串.而这里是OC字符串.//NSString *str = "jack";//NSString类型的指针变量只能存储OC字符串的地址,不能存储C语言的字符串.NSLog(@"大家好,我叫%@",str);//使用占位符%@来输出OC字符串.NSLog(str);//NSLog函数的第一个参数是OC字符串,直接给它一个OC字符串.return 0; }
转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7114705.html
10_传智播客iOS视频教程_NSString相关推荐
- 08_传智播客iOS视频教程_Foundation框架
比如产生随机数.这个功能要你写吗?不用,因为苹果已经写好了.后面想开发一个ios程序,往界面上放一个按钮,实际上这个按钮不用你写别人已经写好了,你就拿过来拖一下就可以了. 框架是1个功能集 苹果或者第 ...
- 14_传智播客iOS视频教程_instancetype
12312312 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7097094.html
- 08_传智播客iOS视频教程_点语法
12312312 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7097083.html
- 17_传智播客iOS视频教程_代码中的面向过程与面向对象以及优缺点分析
12312312 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7150982.html
- 05_传智播客iOS视频教程_类对象的使用
12312312 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7097079.html
- 23_传智播客iOS视频教程_类的对象的创建
123132132 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7151984.html
- 04_传智播客iOS视频教程_类是以Class对象存储在代码段
1231312 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7097077.html
- 15_传智播客iOS视频教程_OC语言完全兼容C语言
OC支持C语言所有的运算符并且效果是一样的.C语言中所有的运算符OC都支持.这些所有的运算符OC当中全部都支持. 包括C语言的结构体.枚举全部都可以写在OC当中,没有任何问题,并且效果是一样的. 比如 ...
- 01_传智播客iOS视频教程_课程介绍与知识点回顾
OC语法中static关键字不能修饰属性,也不能修饰方法,只能修饰方法中的局部变量.static修饰局部变量之后把局部变量变成静态变量.当方法执行完之后这个变量不会被回收.下次再执行这个方法的时候这个 ...
- 传智播客JDBC视频教程
视频介绍: 一些视频教程通过浅显案例来让初学者感到轻松,但是课程中编写的代码不能直接应用于项目中:而本套视频教程正好相反,视频讲解者李勇老师以技术见长,性格朴实无华.不善于幽默搞笑,李勇老师编写的代码 ...
最新文章
- C++11新特性之defaulted函数
- Mapreuduce实现网络数据包的清洗工作
- ABAP Range
- 时代天使点燃口腔赛道,瑞尔集团离下一只“牙茅”还有多远?
- Windows10安装python2.7.15版本,附过程问题解决方案
- 【项目】springboot中使用kaptcha生成验证码,登录时密码加盐处理
- c语言 static 关键字的作用
- Ubuntu 配置 Go 语言开发环境(Sublime Text+GoSublime)
- [深度学习]知识蒸馏技术
- 前端之使用 POST 提交数据并跳转
- oracle堆表和MySQL_聚簇索引对比|Oracle vs MySQL
- C# NameValueCollection
- Tomcat9的安装及配置详细步骤
- 计算机系统复制文件,电脑没法复制文件?教您解决电脑没法复制文件
- pe怎么看计算机mac地址,在winPE下肿么看MAC地址 急求!!!
- GROMOS力场文件解读手册第5章阅读笔记I
- MySQL 语法整理(2)
- java输出美国的时间_java显示当前美国洛杉矶时间
- linux网络编程--网络编程的基本函数介绍与使用
- 2021-01-09T18:00:00.000Z格式时间存数据库,字段类型为datetime,直接出现报错