NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎么学习它们呢?

我觉得学习这些经常使用的类,使用类比的方法即可了,仅仅要学会一个类,就能类比另外两个类了..

比方,NSString和NSMutableString的可变与不可变,主要区分的标准是,它们本身是不是能够变,可变的一般都能增,删,改,而不可变的方法主要是创建,查看,得到元素个数或者长度等等;

命名规则



NSString



第一,创建                                    initWithFormat或者stringWithFormat

第二,求字符串长度                      length

第三,推断字符串是否相等           isEqualToString

第四,字符串替换                         stringByReplacingOccurrenceOfString:withString:

第五,字符串比較                         compare  返回值枚举

第六,字符串拼接                         stringByAppendingFormat

第七,求字符                                substringFromlndex

第八,查询字符串                         rangeOfString

第九,前缀,后缀                            hasPrefix    hasSuffix

第十,字母大写                             uppercaseString



NSMutableString     可变字符串



第一,创建  使用父类继承的方法或者使用自己的创建方法      initWithCapacity

第二, 增        
insertString:atlndex:        /////////////////

第三, 删         deleteCharacterslnRange:

第四, 改         replaceCharacterslnRange:

NSArray      容器  仅仅能存储对象(继承自NSObject的类) 不可变的数组 不能加入 不能删除,不能改动, 

第一,创建              initWithObjects:     arrayWithObjects:

第二,看元素          ,objectAtIndex:

第三,数组个数,      [array count]

第四,排序              [sortedArrayUsingSelector: ] 比較字符串直接用compare,假设比較person,就须要重写比較方法

[sortArrayUsingComparator: ]block作为參数排序,优先使用这个

NSMutableArray    可变字符串



第一,增(加入),       addObject

第二,删                  removeObjectAtIndex:           removeObject       removeAllObjects

第三,插入              insertObject:  atIndex:

第四,替换              replaceObjectAtlndex: withObject:

第五,交换              exchangeObjectAtIndex:(目的串)     withObjectAtIndex:(来源串)

NSDictionary   不可变字典

第一,创建                     + dictionaryWithObject:forKey:  – initWithObjectsAndKeys:

第二,看键值对个数       - count

第三,通过键获取值       -objectForKey;

NSMutableDictionary  可变字典

第一,创建                      initWithCapacity

第二,加入(增)                setObject:  forKey:

第三,删                           removeObjectForKey:

第四,改                          setObject: forKey;

collection   集合(容器)

包含 Array(有序容器)   Dictionary(无序容器)   set(集合)

NSValue , NSNumber 容器,转换作用



NSValue     转换结构体为对象

NSNumber 转换基本数据类型为对象

NSSet集合     无序并且不重      能够用来排除反复  

  

另一个能够用来计算反复多少次的子类



使用 —s复数的方法   一般返回值是   用新建的数组存起来

#pragma mark -----------创建NSCountedSet
能记录元素的反复次数

NSCountedSet * countSet = [NSCountedSet
setWithObjects:@"1",@"2",@"3",@"1",@"1",nil];

NSLog(@"countForObject = %ld",[countSet
countForObject:@"1"]);

#pragma mark -----------高速枚举(遍历)

//        for (<#type *object#> in <#collection#>) {

//            <#statements#>

//        }

//数组
上面object是元素   //字典
上面object是key

近期关于封装,也有一些新的认识,详细例如以下:

就是把main函数里面的代码封装到还有一个新的类.然后在main函数里面调用方法即可了

就像C语言的函数一样

.尽量用forin遍历,而不是循环.字典forin元素的是key,forin不能删除元素,改动元素,可是能够记录下来.在外面删除就好了

假设有两个或两个以上初始化方法,就用指定初始化方法,指定初始化方法,以參数多的那个为指定方法.

关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary的更多相关文章

  1. 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...

  2. NSString、NSArray、NSDictionary和NSData的数据存储

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  3. 黑马程序员——OC语言Foundation框架 NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一) NSNumber 将各种基本数据类型包装成NSNumber对象 @ ...

  4. 用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?

    因为父类指针可以指向子类对象,使用 copy 的目的是为了让本对象的属性不受外界影响,使用 copy 无论给我传入是一个可变对象还是不可对象,我本身持有的就是一个不可变的副本. 如果我们使用是 str ...

  5. NSArray与NSString、NSData,NSDictionary与NSString、NSData 相互转化

    NSArray *array = @[ @1, @2, @3, @4, @5, @3 ]; // 1. NSArray与NSData相互转化 // NSArray to NSData NSError ...

  6. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

  7. 用法总结:NSArray,NSSet,NSDictionary-备用

    Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合      (集合)NS ...

  8. iOS 将NSArray、NSDictionary转换为JSON格式进行网络传输

    http://blog.csdn.net/worldzhy/article/details/49982491 将NSArray.NSDictionary转换为JSON格式进行网络传输,是经常用到的,但 ...

  9. IOS中数组的使用(NSArray, NSSet, NSDictionary)

    一.Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合(集合) NSDic ...

随机推荐

  1. 利用freemarker导出页面格式复杂的excel

    刚开始大家可能会利用poi生成简单的excel,但是遇到需要生成复杂的excel,poi导出excel就比较困难,这时候可以利用freemarker来渲染实现实现生成复杂的excel, 首先,将exc ...

  2. jstree的基本使用例子

    var menu = (function() { var _menu = {data:{}, initMenu : function() { $.jstree.defaults.core.themes ...

  3. python利用requests统计1个接口的响应时间

    参照 https://www.cnblogs.com/yoyoketang/p/8035428.html requests统计接口的响应时间有2种方式 r.elapsed.total_seconds( ...

  4. 08Microsoft SQL Server 数据查询

    Microsoft SQL Server 数据查询 单表查询所有列 --查询所有行所有列 select all * from table; --查询不重复行的所有列 select distinct * ...

  5. Django - 自定义filter

    自定义filter 自定义filter时,使用装饰器fileter 在html中,使用传参方式为: 参数1|函数名:参数2 并且函数和参数之间,不能有空格,如果有空格,会报错. filter和simp ...

  6. ubuntu安装nvidia驱动以及cuda教程

    最近尝试在ubuntu中安装nvidia的显卡驱动以及cuda.花了近三天时间,真的如网上所说错误百出,期间甚至重装了一次ubuntu系统,搞到怀疑人生,整个都是泪- -.最终经过百般“磨难”总算安装 ...

  7. 关于SPFA的双端队列优化

    7.11 Update 我做题的时候发现这样写会RE 因为在使用双端队列优化SPFA的时候 在将一个点加入队列的时候,如果队列已经空了 那么一旦出现dis[Q.front()]就会RE 可以这样修改 ...

  8. (C/C++学习)15.C语言字符串和字符数组

    说明:在C语言中字符串和字符数组有很多相似之处,却又有着一些不同.本文将针对其区别与联系,进行分析总结. 一.字符串 1.在C语言中,字符串是由双引号括起来的任意字符序列,如:"china& ...

  9. pxc增量备份

    ###增备数据库,如果后续还需要再次增备,则可以再次指定--extra-lsndir,如果与上次备份指定相同的位置,该文件被覆盖# innobackupex --compress --incremen ...

  10. STM32 内存管理实验

    参考原文<STM32F1开发指南> 内存管理简介 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.最主要的目的是如何高效.快速的分配,并且在适当的时候释放和回收内存资源.内存管 ...