*****************************************************************************
NSArray
*******************************************************************************/
/*---------------------------创建数组------------------------------*/
NSArray *array = [[NSArray alloc] initWithObjects: @"One",@"Two",@"Three",@"Four",nil];
NSArray * array1 = [[NSArray alloc]initWithArray:array];
NSArray * array2 = [NSArray arrayWithArray:array];
NSArray *array3 = [[NSArray arrayWithObjects:
@"One",@"Two",@"Three",@"Four",nil];
[array release];
[array1 release];
//- (NSUInteger) Count;数组所包含对象(元素)个数;
NSLog(@"count:%d",[array count]);
//- (id) objectAtIndex: (NSUInteger) index;获取指定索引处的对象(元素);
NSLog(@"object :%@",[array objectAtIndex:2]);
/*查找:根据元素找到对应的索引*/
NSArray*array=[[NSArrayalloc]initWithObjects:@"one",@"two",@"three",@"one
", nil];
//返回找到的第一个的索引, 一切操作不要越界
NSUInteger index = [array indexOfObject:@"one"];
//在指定范围内查找
index = [array indexOfObject:@"one" inRange:NSMakeRange(1, 3)];
if (index != NSNotFound) {//找不到返回 NSNotFound
NSLog(@"index = %ld",index);
}
/*数组的抽取*/
NSArray * array1 = [array objectsAtIndexes:[NSIndexSet
indexSetWithIndexesInRange:NSMakeRange(1, 3)]];
//NSIndexSet 数字集合类
//[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)];创建一个数字
集合对象//该集合成员是数字 1,2,3;
/*枚举器*/
//创建一个正序枚举器
NSEnumerator * enume1 = [array objectEnumerator];
//枚举器是读数据的
while (obj = [enume1 nextObject]) {
NSLog(@"%@",obj);
}
//快速枚举(正序)
NSArray *array = [NSArray arrayWithObjects: @"a",@"b",@"c",@"d",nil];
for(id obj in array)
{
NSLog(@"obj:%@",obj);
}
//创建一个逆序枚举器
NSEnumerator * enume2 = [array reverseObjectEnumerator];
while (obj = [enume2 nextObject]) {
NSLog(@"obj = %@",obj);
}
/*---------------------------字符串分割到数组------------------------------*/
NSString * str = @" Yes,I am a good man ";
//以字符串整体作为分割条件
NSArray * array = [str componentsSeparatedByString:@" "];//以@” ” 作为分割
条件
NSArray*array1 = [str componentsSeparatedByCharactersInSet:[NSCharacterSet
characterSetWithCharactersInString:@" ,"]];//以字符作为分割条件
//NSCharacterSet 字符集合
//[NSCharacterSet characterSetWithCharactersInString:@" ,"];把字符串@" ,"转
化为一个字符集合
//这个集合的成员就是字符‘ ‘和字符‘,‘;
//返回值 是 NSArray 不要写成 NSMuatbaleArray
/*---------------------------数组元素拼接成字符串------------------------------*/
NSString * ptr = [array componentsJoinedByString:@"###"];//把数组元素拼接
成字符串
NSLog(@”ptr = %@”,ptr);
/******************************************************************************
NSMutableArray
*******************************************************************************/
/*创建一个可变数组(继承于 NSArray)*/
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:
@"One",@"Two",@"Three",@"Four",nil];
NSMutableArray * array1 = [[NSMutableArray alloc]initWithArray:array];
NSMutableArray * array2 = [NSMutableArray arrayWithArray:array];
NSMutableArray *array3 = [[NSMutableArray arrayWithObjects:
@"One",@"Two",@"Three",@"Four",nil];
[array release];
[array1 release];
//把不可变转化为一个新的可变数组
NSArray *array = [NSArray arrayWithObjects: @"a",@"b",@"c",@"d",nil];
NSMutableArray * array1 = [NSMutableArray arrayWithArray:array];
//增 add (insert)
[array addObject:@"four"];//在最后增加
[array insertObject:@"iOS" atIndex:1];//在指定索引插入一个元素
//删除(remove)
[array removeObjectAtIndex:1];//根据索引删除元素
[array removeObject:@"one"];//删除数组元素:有几个删几个
[array removeObject:@"one" inRange:NSMakeRange(0, 2)]; //在指定范围内删
除
//替换(replace):修改
[array replaceObjectAtIndex:0 withObject:@"qianfeng"];
//交换(exchange)
[array exchangeObjectAtIndex:1 withObjectAtIndex:2];
/*可变数组排序*/
//创建一个空的可变数组
//(首先设计一个 Dog 类)
NSMutableArray * array = [[NSMutableArray alloc]init];
while (i++ < 5) {
Dog * dog = [[Dog alloc]initWithAge:arc4random()%10];
[array addObject:dog];
}
[array sortUsingSelector:@selector(youngThanAge:)];
//sortUsingSelector 这是一个排序方法;已经实现了, //但是需要我们提供一个准则(就是一个函数)这个准则是(升序)左边 大于 右边 进行交换 或者是(降序)左边小于右边进行交换 //数组的元素是哪个类?那么这个准则就写在哪个类中
//这就是一个准则 左边 大于 右边 进行交换
//升序
-(BOOL)olderThanAge:(Dog *)_dog
{
return [self age] > [_dog age];
}
/*************************************************************************
NSDictionary
****************************************************************************/
//内容可以是任意的对象指针 //内容是一些键值对 key à?value //必须成对出现 一个 key 对应一个 value //key 是唯一的 不能出现多个相同的 key
1.创建一个不可变字典(1)
NSDictionary*dict=[[NSDictionary
alloc]initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",@"4",
@"four",@"5",@"five", nil];//
创建一个不可变字典(2)
NSDictionary * dict1 = [NSDictionary dictionaryWithDictionary:dict];
创建一个不可变字典(3)
NSArray * values =[[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4", nil];
NSArray*keys=[[NSArray
alloc]initWithObjects:@"one",@"two",@"three",@"four", nil];
NSDictionary* dict2 = [[NSDictionary alloc]initWithObjects:values forKeys:keys];
//键值对的个数
NSLog(@"count = %ld",[dict2 count]);
//查找 通过 key 找到对应值
NSLog(@"%@",[dict objectForKey:@"four"]);
词典类的存在就是为了解决在大量数据中查找方便,因为它是通过 key 直接找到
value 所以速度很快,避免一个个的遍历寻找造成的效率低下,善用字典类会帮
你的程序提速。
//创建 key 的枚举器
NSEnumerator * keyenumer = [dict keyEnumerator];
while (obj = [keyenumer nextObject]) {
NSLog(@"obj = %@",obj);
}
//快速枚举枚举的是 key
for (id od in dict) {
NSLog(@"od = %@",od);
}
/*******************************************************************************
NSMutableDictionary
*******************************************************************************/
NSMutableDictionary 是NSDictionary的子类,所以继承了NSDictionary的方法。
//创建可变字典
NSMutableDictionary*dict=[[NSMutableDictionary
alloc]initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",@"4",
@"four", nil];
NSMutableDictionary*dict1 =[NSMutableDictionary dictionaryWithCapacity:10] :
创建一个可变词典初始指定它的长度为 10.,动态的添加数据如果超过 10 这个
词典长度会自动增加,所以不用担心数组越界。
//增加 删除 修改
[dict setObject:@"5" forKey:@"five"];//字典中不存在@“five”key 那么就是增
加键值对
[dict setObject:@"7" forKey:@"one"];//字典中存在@“one”key 那么就是修改@
“one”对应的值
[dict removeObjectForKey:@"one"];//删除键值对
- (void)removeAllObjects;//删除所有键值对
- (void)removeObjectsForKeys:(NSArray *)keyArray;//删除keys
数组对应的键值对
- (void)setDictionary:(NSDictionary *)otherDictionary;//修
改字典
!
/*******************************************************************************!
????NSString!
*******************************************************************************
NSString!*[email protected]"Welcome!to!1000phone";
//2???????????????? initWithString:
!
NSString!*astring!=![[NSString!alloc]!initWithString:@"!I!love!iOS!"];! ! ! ! ! !
NSLog(@"astring:%@",astring);
[astring!release];! ! ! ! ! !
!
//3???????? c ??????????: initWithCString:!encoding:????! ! ! ! ! !
!
const!char!*cString!=!"I!love!iphone";! ! ! ! ! !
NSString * aString = [[NSString alloc]initWithCString:cString
encoding:NSUTF8StringEncoding];! ! ! !
NSLog(@"astring:%@",aString);! ! ! ! ! !
[aString!release];! ! !
!!!!
???????? initWithUTF8String:????????????????????!
const!char!*p!=!"!Welcome!to!Beijing!";!
NSString!*string!=![[NSString!alloc]initWithUTF8String:p];!
!
//4??????????????????:??????????????%????????????????! ! ! ! ! !
!!!!!
int! ! age!=!23;!
NSString!*astring!=![[NSString!alloc]!initWithFormat:@”I!am!%d”,age]];! ! ! ! ! !
NSLog(@"astring:%@",astring);! ! ! ! ! !
[astring!release];! ! ! ! ! !
!
//5????????????????????????????!
!
NSString!*!str1!=![NSString!stringWithString:@"I!love!programming!"];!
NSString!*!str2!=![NSString!stringWithUTF8String:"!I!love!programming!"];!
NSString!*!str3!=![NSString!stringWithFormat:@"%@",@"!I!love!programming!"];!
!
//6.! ????????????????:initWithContentsOfFile:! ! ! ! ! ! ! ! !
!
NSString!*[email protected]"!/Users/qianfeng/Desktop/StringAPI.pdf";! ! //????????! ! ! !
NSString!*astring!=![[NSString!alloc]!initWithContentsOfFile:path];! ! ! ! ! !
NSLog(@"astring:%@",astring);! ! ! ! ! !
[astring!release];! ! ! ! ! !
!
!
/*++++++++++++++++??????????????++++++++++++++++*/!
//??C????:strcmp????! ! ! ! ! !
!
char!string1[]!=!"string!";! ! ! ! ! !
char!string2[]!=!"string!";! ! ! ! ! !
if(strcmp(string1,!string2)!=!=!0)! ! ! ! ! !
{! ! ! ! ! !
! ! ! ! NSLog(@"1");! ! ! ! ! !
}! ! ! ! ! !
!
//1.! ! isEqualToString ????! ! ??????????????????????! ???????? 1! ???????? 0! ! ! ! ! ! !
!
NSString!*[email protected]"This!is!a!String!";! ! ! ! ! !
NSString!*[email protected]"This!is!a!String!";! ! ! ! ! !
BOOL!result!=![astring01!isEqualToString:astring02];! ! ! ! ! !
NSLog(@"result:%d",result);! ! ! ! ! !
!
//2.!compare ????(compare:????????????! ??????+1??0??1)! ! ! ! ! ! ! ! ! !
!
//NSOrderedSame ????????????????????!
NSString!*[email protected]"This!is!a!String!";! ! ! ! ! !
NSString!*[email protected]"This!is!a!String!";! ! ! ! ! ! ! ! ! !
BOOL!result!=![astring01!compare:astring02]!=!=!NSOrderedSame;! ! ! ! ! ! ! ! ! !
NSLog(@"result:%d",result);! !
!!!!!!!!!
//NSOrderedAscending ??????????????????(????????????????????astring01
???? astring02 ????)!
NSString!*[email protected]"This!is!a!String!";! ! ! ! ! !
NSString!*[email protected]"this!is!a!String!";! ! ! ! ! !
BOOL!result!=![astring01!compare:astring02]!=!=!NSOrderedAscending;! ! ! ! ! ! ! ! ! !
NSLog(@"result:%d",result);! ! ! //! ! !
//NSOrderedDescending ??????????????????(????????????????????astring01
???? astring02 ????)! ! ! !
!
NSString!*[email protected]"this!is!a!String!";! ! ! ! ! !
NSString!*[email protected]"This!is!a!String!";! ! ! ! ! !
BOOL!result!=![astring01!compare:astring02]!=!=!NSOrderedDescending;! ! ! ! ! ! ! ! ! !
NSLog(@"result:%d",result);! ! ! ! ! ! ! ! ! ! !
//3.! ??????????????????????! ! ! !
NSString!*[email protected]"this!is!a!String!";! ! ! ! ! !
NSString!*[email protected]"This!is!a!String!";! ! ! ! ! !
BOOL!result!=![astring01!caseInsensitiveCompare:astring02]!=!=!
NSOrderedSame;! ! ! ! ! ! ! ! ! !
NSLog(@"result:%d",result);! ! ! ! ! ! ! ! ! ! !
enum _NSComparisonResult {
NSOrderedAscending = -1, //!astring01 ???? astring02
NSOrderedSame, astring01 ???? astring02
NSOrderedDescending! ! ! ! ! ! ! ! ! ! astring01 ???? astring02
};!
!!!!
/*++++++++++++++++??????????????????++++++++++++++++*/!
NSString!*[email protected]"A!String";! ! ! ! ! ! !
NSString!*[email protected]"String";! ! ! !
!!!!
//1.!uppercaseString! ??????????! ! ! ! ! string1 ??????????????????????????
????????????????????????????string ??????????????????!
NSString!*string!=![string1!uppercaseString]??!
NSLog(@"string:%@",string);!
!
//2.!lowercaseString! ??????????!
string!=![string1!lowercaseString];!
NSLog(@"string:%@",string);! ! ! ! ! !
!
//3.!capitalizedString! ??????????????! ??????????????????????????! !
NSLog(@"string:%@",string);//??????????! ! ! ! ! !
!
/*++++++++++++++++????????++++++++++++++++*/!
!
NSString!*[email protected]"I!love!iOS!very!much!";! ! ! ! ! !
NSString!*[email protected]"iOS";! ! ! ! ! !
NSRange!range!=![string1!rangeOfString:string2];!//NSRange! ????????????????
?? string2 ?????? string1 ??????????????????????! ! ! ! !
NSUInteger! ! location!=!range.location;! ! ! ! ! !
NSUInteger!length=!range.length;! ! ! ! ! !
NSString!*astring!=![NSString!
stringWithFormat:@"Location:%lu,Leight:%lu",location,!length];! ! ! ! ! !
NSLog(@"astring:%@",astring);! ! ! ! ! !
[astring!release];! ! ! ! ! !
!
/*++++++++++++++++????????! ++++++++++++++++*/!
//1.!+substringToIndex:! ????????????????????????????????????????????????
!
????????! ! ! ! ! !
NSString!*[email protected]"This!is!a!string";! ! ! ! ! !
NSString!*string2!=![string1!substringToIndex:3];! ! ! ! ! !
NSLog(@"string2:%@",string2);! ! ! ! ! !
!
//2.!+substringFromIndex:! ??????????????????????????????????????????????
????????????????! ????????;! ! ! ! !
!
NSString!*[email protected]"This!is!a!string";! ! ! ! ! !
NSString!*string2!=![string1!substringFromIndex:3];! ! ! ! ! !
NSLog(@"string2:%@",string2);! ! ! ! ! !
!
//3.!+substringWithRange:!//??????????????????????????????! ! ! ! ! !
!
NSString!*[email protected]"This!is!a!string";! ! ! ! ! !
NSString!*string2!=![string1!substringWithRange:NSMakeRange(0,!4)];! ! ! ! ! !
NSLog(@"string2:%@",string2);! ! ! !
/*++++++++++++????????????????????????????????(??????????)++++++++++++*/!
!
//01??????????????????????????????????+!(BOOL)!hasPrefix:!(NSString!*)!
aString;! ! ????????????! ! ! !
!
NSString!*[email protected]"NSStringInformation.txt";! !
[String1!hasPrefix:@"NSString"]!=!=!1!?! ! NSLog(@"YES")!:!NSLog(@"NO");! ! ! ! ! !
//02??????????????????????????????????+!(BOOL)!hasSuffix:!(NSString!*)!
aString;! ! ????????????! ! ! !
[String1!hasSuffix:@".txt"]!=!=!1!?! ! NSLog(@"YES")!:!NSLog(@"NO");! ! ! ! ! ! !
!
/******************************************************************************! ! ! !
????NSMutableString!
*******************************************************************************/! ! ! ! ! ! ! ! ! !
!
/*+++++++++++++++????????????????????????++++++++++++++++*/!
//stringWithCapacity:! ! ! ! ! !
NSMutableString!*string;! ! ! ! ! !
string!=![NSMutableString!stringWithCapacity:20];//???????? 20 ????????????
????!
[email protected]”Welcome!to!qianfeng”;!
/*+++++++++++++++??????????++++++++++++++++*/!
//1.! ! appendString:! ! ! ! ! ! ! ! appendFormat:! ! ! ! ??????????????????????! !
!
NSMutableString!*String1!=![[NSMutableString!alloc]!initWithString:@"This!is!a!
NSMutableString"];! ! ! ! ! !
//[String1!appendString:@",!I!will!be!adding!some!characters"];! ! ! ! ! !
[String1!appendFormat:[NSString!stringWithFormat:@",!I!will!be!adding!some!
characters"]];! ! ! ! ! !
NSLog(@"String1:%@",String1);! ! ! !
!
//2.!+insertString:!atIndex:! ! ! ! ????????????????????! !
!
NSMutableString!*String1!=![[NSMutableString!alloc]!initWithString:@"This!is!a!
NSMutableString"];! ! ! ! ! !
[String1!insertString:@"Hi!!"!atIndex:0];! ! ! ! ! !
NSLog(@"String1:%@",String1);! ! ! ! ! !
/*++++++++??????????????????????????????????????????++++++*/!
!
//deleteCharactersInRange:! ! ??????????????????????! ! ! !
! NSMutableString!*String1!=![[NSMutableString!alloc]!initWithString:@"This!is!a!
NSMutableString"];! ! ! ! ! !
! [String1!deleteCharactersInRange:NSMakeRange(0,!5)];! ! ! ! ! !
! NSLog(@"String1:%@",String1);! ! ! ! ! !
!
/*++++++++??????????++++++*/!
!
//+setString:! ! ! ! ! ??????????!
!
NSMutableString!*String1!=![[NSMutableString!alloc]!initWithString:@"This!is!a!
NSMutableString"];! ! ! ! ! !
[String1!setString:@"Hello!Word!"];! ! ! ! ! !
NSLog(@"String1:%@",String1);! ! ! ! ! !
!
/*++++++++??????????????????????????????++++++*/!
//!replaceCharactersInRange:!withString:! ????!
!
NSMutableString!*String1!=![[NSMutableString!alloc]!initWithString:@"This!is!a!
NSMutableString"];! ! ! ! ! !
[String1!replaceCharactersInRange:NSMakeRange(0,!4)!withString:@"That"];! ! ! ! ! !
NSLog(@"String1:%@",String1);! ! ! ! !