关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary
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的更多相关文章
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- NSString、NSArray、NSDictionary和NSData的数据存储
#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...
- 黑马程序员——OC语言Foundation框架 NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一) NSNumber 将各种基本数据类型包装成NSNumber对象 @ ...
- 用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
因为父类指针可以指向子类对象,使用 copy 的目的是为了让本对象的属性不受外界影响,使用 copy 无论给我传入是一个可变对象还是不可对象,我本身持有的就是一个不可变的副本. 如果我们使用是 str ...
- NSArray与NSString、NSData,NSDictionary与NSString、NSData 相互转化
NSArray *array = @[ @1, @2, @3, @4, @5, @3 ]; // 1. NSArray与NSData相互转化 // NSArray to NSData NSError ...
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...
- 用法总结:NSArray,NSSet,NSDictionary-备用
Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合 (集合)NS ...
- iOS 将NSArray、NSDictionary转换为JSON格式进行网络传输
http://blog.csdn.net/worldzhy/article/details/49982491 将NSArray.NSDictionary转换为JSON格式进行网络传输,是经常用到的,但 ...
- IOS中数组的使用(NSArray, NSSet, NSDictionary)
一.Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合(集合) NSDic ...
随机推荐
- redis学习-字典
1.字典作用 实现数据库键空间(key space): 用作 Hash 类型键的底层实现之一: 2.字典实现的数据结构 typedef struct dict { // 特定于类型的处理函数 dict ...
- 【C++】智能指针简述(六):智能指针总结及补充
本文我们主要来总结一下前文介绍过的智能指针相关原理及实现,顺便补充一下前文未提到的shared_ptr删除器部分的内容. 总结: 1.智能指针,通过RAII机制,构造对象时完成资源的初始化,析构对象时 ...
- StyleAI厚积薄发: Android网络图片数据传输
在StyleAI上厚积了这么长时间,憋了这么久,本来想憋个更大的,不过还是薄发一次的好. 三.直接使用别人的工程 文章:Android学习之客户端上传图片到服务器 下载地址:https://downl ...
- 15年第六届蓝桥杯第七题_(string)
手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙.他想用它们串成一圈作为手链,送给女朋友.现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数.不要填写任 ...
- SQlite数据库框架:LitePal
常用的数据库框架Android的发展的速度是难以置信的,Android出来哪一年我还在小学上学很,还能很清楚的记得,那年一切,但是那个时候的我怎么可能也不会想到自己将来会要去做Android.Andr ...
- arx代码片段
ObjectARX代码片段二 转载自网络 一 在ARX中禁用AutoCAD的某个命令 以LINE命令为例,在程序中加入下面的一句即可禁用LINE命令: acedCommand(RTSTR, &q ...
- Apache添加到windows服务和移除Apache的windows服务
Apache添加到windows服务和移除Apache的windows服务 Apache免安装版将其添加到Windows服务中: 打开cmd控制台,在上面输入"你的Apache安装目录\bi ...
- 牛客多校Round 5
Solved:3 rank:195 F. take 官方题解:小 A 在打开第 i 个箱子后会交换手中的钻石和第 i 个箱子中的钻石 当且仅当第 i个箱子的钻石是前 i 个箱子打开后出现的所有钻石里最 ...
- 诊断:记一次存储异常CRASH致数据库无法正常打开的恢复
数据库存储异常crash,首先控制文件出现问题 ORA-: ????? ???? ORA-: ???? : '/oracledata/oradata/orc11rac/orc11rac/system0 ...
- 第3章 从Flux到Redux
第3章 从Flux到Redux 3.1 Flux 单向数据流,React是用来替换Jquery的,Flux是以替换Backbone.js.Ember.js等MVC框架为主的. actionTypes. ...