主要内容: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第四课的更多相关文章

  1. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持

    Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...

  2. Kali Linux Web 渗透测试视频教程— 第四课 google hack 实战

    Kali Linux Web 渗透测试— 第四课 google hack 实战 文/玄魂 目录 shellKali Linux Web 渗透测试— 第四课 google hack 实战 课程目录 Go ...

  3. NeHe OpenGL教程 第四十四课:3D光晕

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. NeHe OpenGL教程 第三十四课:地形

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. NeHe OpenGL教程 第二十四课:扩展

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. NeHe OpenGL教程 第十四课:图形字体

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  7. NeHe OpenGL教程 第四课:旋转

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. 【C语言探险】 第四课的第二部分:串

    内容简单介绍 1.课程大纲 2.第二部分第四课: 字符串 3.第二部分第五课预告: 预处理 课程大纲 我们的课程分为四大部分,每个部分结束后都会有练习题,并会发布答案.还会带大家用C语言编写三个游戏. ...

  9. 【Linux探索之旅】第二部分第四课:文件操纵,鼓掌之中

    内容简介 1.第二部分第四课:文件操纵,鼓掌之中 2.第二部分第五课预告:用户和权限 文件操纵,鼓掌之中 既然上一课我们学习了Linux中的文件组织方式,那么现在就该是玩弄,啊不,是操纵它们的时候了. ...

随机推荐

  1. 【Java技术位】——代理模式及其事务包

    背景 项目中我们会遇到这种情况:在几个方法中增加同样的代码,这些代码是与业务无关的,而且以后有可能因为考虑不周或需求变动再或者是其它原因,我们须要对他们进行逐一进行修改.举个详细的样例,比方程序中的日 ...

  2. hdu 4856 Tunnels(bfs+状态压缩)

    题目链接:hdu 4856 Tunnels 题目大意:给定一张图,图上有M个管道,管道给定入口和出口,单向,如今有人想要体验下这M个管道,问最短须要移动的距离,起点未定. 解题思路:首先用bfs处理出 ...

  3. 一天JavaScript示例-判定web页面的区域

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  4. Nginx + IIS 配置,实现负载均衡

    当你的Web应用程序访问量大的时候,一台服务器可能会因为压力过大而无法处理所有的请求.此时,可以增加服务器,采用负载均衡来分担所有的请求.关于Nginx的作用,自行百度了解.总之,在Windows平台 ...

  5. html 块状元素 行内元素 内联元素

    块状(Block)类型的元素的width默认为100%,而行内(Inline)类型的元素则是根据自身的内容及子元素来决定宽度. 块元素(block element) address - 地址 bloc ...

  6. 09应用输入经理旋转场景--《猿学校课程Unity3d》

    为什么极品飞车游戏等.,我们可以通过系统设置非常的方面根据自己喜欢的操作模式设置,有些人喜欢用箭头来控制不喜欢与使用"W,S,A,D"控制,这就解释程序猿不会死在程序写入内部控制, ...

  7. MyBatis与Spring设置callSettersOnNulls

    项目中集成Mybatis与Spring,使用的是Mybatis3.2.7,以及Spring4.0.5,mybatis-spring-1.2.2;由于项目组成员想要偷懒,将数据从DB中查询出来时须要将字 ...

  8. “NET网络”进行中,多管齐下的人才力挫“”粗俗

            随着互联网的迅猛发展,一些不太干净.低俗的甚至色情的内容不断浮现.不仅严重影响了我们的上网体验,也成为扰乱互联网正常秩序的罪魁祸首,部分不法内容甚至给网民造成了一定的財产损失.在这样的 ...

  9. 如何定义AIDL跨进程间通信

    当进程A要去调用进程B中的service时,并实现通信,我们通常都是通过AIDL来操作的 projectA: 首先在我们自己的包com.wzp.aidlservice中创建一个RemoteServic ...

  10. 【玩转微信公众平台六】 构建新浪SAEserver

    连接急于继续发言. ------本文主要介绍介绍如何设置 新浪SAEserver.猛戳 http://sae.sina.com.cn/1.先自己注冊一个账号,假设有新浪的账号,微博之类的都能够直接拿来 ...