OC第四课
主要内容:NSString、NSArray、NSNumber
一、苹果公司的帮助文档(API)
学会查看API对于后续的编程有很好的帮助
进入方法:
Xcode ->Help -> Documenttion and API Reference
文档的基本信息
1、Inherits from 继承自
2、Conforms to 遵循什么协议
3、Framework 属于什么框架
4、Availability 什么时候可用的
5、Declared in 声明在什么头文件中
6、Related documents 相关文档
7、simple code 演示样例代码
二、字符串类
分为不可变字符串(NSString)、可变字符串(NSMutableString)
Foundation框架是Cocoa编程、iOS编程的基础框架,包含字符串、集合、日期、时间等基础类
字符串、字典、数组都属于Foundation框架
1、C语言中,字符串是由char(ASCII)字符组成
2、OC中,字符串是由unchar(Unicode)字符组成
不可变字符串:
创建之后。内容和长度不可更改
创建(三种方法):
1、初始化方法创建 演示样例:NSString *str1 = [ [ NSString alloc ] initWithFomat : @" 大家好,我是:%@ 年龄:%d ", @" 辉子 ", 21] ;
2、便利构造器 NSString *str2 = [ [ NSString stringWithFormat : @"大家好,我是%@ 年龄:%d" , @" 辉子 ", 21] ;
3、字面量 NSString *str3 = @" abcdefg " ;
NSString经常用法
1、获取字符串长度:length
演示样例:NSInteger strength = [ str3 length ]
NSLog(@" %ld " , strlength) ;
2、获取子字符串:
2.1从開始截取到指定位置 substringToIndex
NSString *string1 = [ @" adfafa " , substringToIndex : 3 ] ;
NSLog(@" %@ " , string1) ;
2.2从指定位置開始截取到末尾 substringFromIndex
NSString *string2 = [ @" afafasgasg " , substringFromIndex : 5 ] ;
NSLog(@" %@ " , string2) ;
2.3从指定位置開始截取到指定位置 substringWithRange : NSMakeRange (index , index)
NSString *string3 = [ @" afdsggdgh " , substringWithRange(3, 6) ] ;
NSLog(@" %@ " , string3) ;
3、拼接字符串: stringByAppendingString
NSString *string4 = [ @" faasga " stringByAppendingString @" afas " ] ;
NSLog(@" %@ " , string4) ;
4、替换字符串: stringByReplacingOccurrencesOfString
NSString *string5 = [ @" sadfsgas " stringByReplacingOccurrencesOfString : @" dfs " withString : @" afacdx " ] ;
/ / 意思是把母字符串 @" " 中的子字符串 @" " 替换成字符串 @" "
5、推断字符串的前缀、后缀: hasPrefix hasSuffix
BOOL result = [ @" faff " hasPrefix @" f " ] ;
BOOL restult2 = [ @" sdfa " hasSuffix @" a " ] ;
6、比較字符串:compare
BOOL result3 = [ @" faaf " compare @" safasg " ] ;
7、字符串和数字类型转换:intValue floatValue doubleValue
NSInteger a = [ @" 22 " intValue ] ;
可变字符串(NSMutableString)
NSMutableString(可变字符串)是NSString(不可变字符串)的子类,该类是一个动态的可改变的字符串。能够进行增删改等操作
经常用法
1、字符串的创建
NSMutableString *mu = [ NSMutableString stringWithFomat : @" afsdfa " ] ;
2、拼接字符串 appendString
[ mu appendString : @" asfa " ] ;
3、插入字符 insertString atIndex
[ mu insertString : @" fs " atIndex : @" asd " ] ;
4、删除字符串 deleteCharactersInRange
[ mu deleteCharactersInRange : NSMakeRange(0 , 3) ] ;
5、设置字符串为空 setString
[ mu setString : @" " ] ;
不可变字符串和可变字符串的差别:
1、不可变字符串的改动,本身就是得到一个新的字符串
2、不可变字符串的改动以String开头,有返回值
3、可变字符串的改动没有返回值,改动原字符串
三、数组
存放数据的容器都称为集合(collection)
数组是有序集合,仅仅能存放对象,数组有下标的概念,通过下标获取元素
数组相同分为可变数组、不可变数组
创建方法相同有三种:
1、初始化方法 演示样例:NSArray *array1 = [ [ NSArray alloc ] initWithObjects : @" 我是 " , @" 辉子 " , nil ] ;
2、便利构造器 NSArray *array2 = [ NSArraay arrayWithObjects : @" 大家好 " , nil ] ;
3、字面量 NSArray *array3 = [ @" Hello " , @" Everybody " ]
不可变数组:
经常用法
1、获取元素个数 count 方法
NSIteger a = [ array1 count ] ;
2、依据元素获取下标(Index) indexOfObject 方法
NSString *b = [ array1 indexOfObject : @" 我是 " ] ;
可变数组(NSArray的子类。继承NSArray全部的方法):
创建可变数组:NSMutableArray *mutable = [ NSMutableArray arrayWithObjects : @" asdf " , @" qwer " , @" zxcv " , nil ] ;
经常用法:
1、加入元素 addObject
[ mutable addObject : @" afagh " ] ;
2、插入元素 insertObject
[ mutable insertObject : @" xegdx " atIndex : 2 ] ;
/ / 在下标为2处加入元素
3、删除元素 removeObjectAtIndex(删除指定位置的元素)
removeAllObjects(删除所有元素)
[ mutable removeObjectAtIndex : 2 ] ;
[ mutable removeAllObjects]
4、替换元素 replaceObjectAtIndex
[ mutable replaceObjectAtIndex : 2 ] ;
5、获取首元素、尾元素 firstObject laseObject
[ mutable firstObject ] ;
[ mutable lastObject ] ;
6、推断数组中是否包括某元素 containsObject
[ mutable containsObject : @" asdf " ] ;
四、值对象(NSNumber)
数组仅仅能存放对象,那么怎样存储整形或者结构体呢?
存储:将整型或者结构体转换为对象。在将对象存储到数组中
读取:先读取对象,在将对象还原整为型或结构体
NSNumber完毕数值标量和对象类型的转换
基本类型(int、float等)转换为NSNumber
NSNumber转换的基本类型(int、float等一下)
版权声明:本文博主原创文章,博客,未经同意不得转载。
OC第四课的更多相关文章
- Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持
Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...
- Kali Linux Web 渗透测试视频教程— 第四课 google hack 实战
Kali Linux Web 渗透测试— 第四课 google hack 实战 文/玄魂 目录 shellKali Linux Web 渗透测试— 第四课 google hack 实战 课程目录 Go ...
- NeHe OpenGL教程 第四十四课:3D光晕
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第三十四课:地形
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第二十四课:扩展
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第十四课:图形字体
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第四课:旋转
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 【C语言探险】 第四课的第二部分:串
内容简单介绍 1.课程大纲 2.第二部分第四课: 字符串 3.第二部分第五课预告: 预处理 课程大纲 我们的课程分为四大部分,每个部分结束后都会有练习题,并会发布答案.还会带大家用C语言编写三个游戏. ...
- 【Linux探索之旅】第二部分第四课:文件操纵,鼓掌之中
内容简介 1.第二部分第四课:文件操纵,鼓掌之中 2.第二部分第五课预告:用户和权限 文件操纵,鼓掌之中 既然上一课我们学习了Linux中的文件组织方式,那么现在就该是玩弄,啊不,是操纵它们的时候了. ...
随机推荐
- VS2015在对GIT的支持
VS2015在对GIT的支持 相比VS2013,VS2015在对GIT的支持上有了更强大的支持.本篇仅作抛砖引玉,不做过多介绍: 1. 打开VS 2015起始页 2. 打开团队资源管理器 打开[本地G ...
- UML部署图和图九组件图
前言 UML大部分描写叙述了逻辑和设计方面的信息.实现图用来描写叙述实现方面的信息.实现图包含部署图和构件图. 构件图 1. 概念 构件图从软件架构的角度来描写叙述一个系统的 ...
- Android 常规任务的高度【schedule】与【scheduleAtFixedRate】差额
于android计划定期任务有两种方法 1.schedule 2.scheduleAtFixedRate 这两种方法的差别在于 首次调用时间(Date when)这个參数 <span style ...
- 移动端 像素渲染流水线与GPU Hack
什么是 像素渲染流水线 web页面你所写的页面代码是如何被转换成屏幕上显示的像素的.这个转换过程可以归纳为这样的一个流水线,包含五个关键步骤: 1.JavaScript:一般来说,我们会使用JavaS ...
- rabbitmq技术的一些感悟(一)
Rabbitmq 初识rabbitmq RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现.假设不熟悉AMQP,直接看Rabbi ...
- hadoop-mapreduce在maptask执行分析
MapTask执行通过执行.run方法: 1.生成TaskAttemptContextImpl实例,此实例中的Configuration就是job本身. 2.得到用户定义的Mapper实现类,也就是m ...
- poj1083 思考题
http://poj.org/problem?id=1083 Description The famous ACM (Advanced Computer Maker) Company has rent ...
- 利用纯CSS3实现超立体的3D图片侧翻倾斜效果
原文:利用纯CSS3实现超立体的3D图片侧翻倾斜效果 上午的时候我在jQuery论坛上看到网友分享的一款CSS3 3D图片侧翻倾斜特效,觉得效果非常棒,其实话说回来,这玩意儿的实现真的非常简单,主要是 ...
- 数据库性能监测工具——SQL Server Profiler
使用SQL Server Profiler 进行sql监控需要一些设置: 其他的就是进行分析了~ 清除SQL SERVER缓存 常用的方法: DBCC DROPCLEANBUFFERS 从缓冲池中删除 ...
- django 简易博客开发 1 安装、创建、配置、admin使用(转)
Django 自称是“最适合开发有限期的完美WEB框架”.本文参考<Django web开发指南>,快速搭建一个blog 出来,在中间涉及诸多知识点,这里不会详细说明,如果你是第一次接触D ...