OC-Foundation等

1.【理解】NSMutableString基本概念

NSMutableString是可变字符串,是NSString的子类。


2.【理解】字符串中的可变和不可变

NSMutableString和NSString的区别

NSString是不可变的,里面的文字内容是不能进行修改的。

NSMutableString是可变的,里面的文字内容可以随时更改。

NSMutableString能使用NSString的所有方法


字符串操作


void test()

{

//    str = [str

stringByReplacingOccurrencesOfString:@"a" withString:@"A"];

//    str = [str

uppercaseString];

//    str = [str

lowercaseString];

//    str = [str

capitalizedString];

//   

NSLog(@"%@",str);

}

//比较是否字符串相同

void test2()

{

//    BOOL b = [str

isEqualToString:str1];

//

//   

NSLog(@"%d",b);

}

//比较两个字符串的大小

void test3()

{

//   

NSComparisonResult cc = [str compare:str1];

//   

NSLog(@"%l",cc);

}

//前后缀检查

void test4()

{

//    NSString *preStr

= @"zhu";

//    NSString *sufStr

= @"lei";

//

//    BOOL b = [str

hasPrefix:preStr];

//    BOOL c = [str

hasSuffix:sufStr];

//    if(c)

//    {

//       

NSLog(@"对喽");

//    }

//    else

//    {

//       

NSLog(@"错啦");

//    }

}

//查找字符串

void test5()

{

//    NSString *ranStr

= @"ngl";

//    NSRange range =

[str rangeOfString:ranStr];

//    if(range.location

!= NSNotFound)

//    {

//       

NSLog(@"有啊有啊");

//    }

}

//截取字符串

void test6()

{

    NSString *str1,*str2;

    str1 = [str

substringFromIndex:3];

    str2 = [str

substringToIndex:4];

    NSLog(@"%@",str1);

    NSLog(@"%@",str2);

}


NSMutableString


NSMutableString是可变字符串,是NSString的子类。

NSMutableString和NSString的区别

NSString是不可变的,里面的文字内容是不能进行修改的。

NSMutableString是可变的,里面的文字内容可以随时更改。

NSMutableString能使用NSString的所有方法


NSMutableString操作


              [muStr appendString:@"www"];

        //拼接一段格式字符串

        [muStr appendFormat:@"---%@---",@"嘿嘿嘿" ];

        //删除range范围的字符串

        NSRange range = {6,4};

        [muStr deleteCharactersInRange:range];

        //在loc这个位置中插入aString

        [muStr insertString:@"1314" atIndex:6];

        NSLog(@"%@",muStr);



NSArray


NSArray是OC中的数组类,使用起来更灵活,开发中建议尽量使用NSArray替代C语言中的数组.

【理解】NSArray常见的创建方式:

+ (instancetype)array;

+ (instancetype)arrayWithObject:(

id)anObject;

+ (instancetype)arrayWithObjects:(

id)firstObj,    ...;

+ (instancetype)arrayWithArray:(

NSArray*)array;

+ (

id)arrayWithContentsOfFile:(NSString*)path;

+ (

id)arrayWithContentsOfURL:(NSURL*)url;

// 可以将一个NSArray保存到文件中

- (

BOOL)writeToFile:(NSString*)path 

    atomically:(BOOL)useAuxiliaryFile;

- (

BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;

【理解】NSArray的使用注意事项

1>只能存放任意OC对象,并且是有顺序的。

2>不能存储非OC对象,比如int\float\double\char\enum\struct等。

3> 它是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的, 不能删除里面的元素, 也不能再往里面添加元素.


数组的操作

      //数组的创建与访问

        NSArray *a = @[@"Jack",@"Rose",@"Jim"];

        NSLog(@"%@",a[1]);


  //获取集合元素个数

        NSLog(@"%lu",a.count);


  //获取第三个

        NSLog(@"%@",[a objectAtIndex:2]);


  //是否包含某一个元素

        BOOL b = [a containsObject:@"Jim"];

        if(b)

        {


      NSLog(@"包含");

        }

        else

        {


      NSLog(@"不包含");

        }


  //返回最后一个元素,第一个元素

        NSLog(@"%@",[a lastObject]);

        NSLog(@"%@",[a firstObject]);


  //查找某个元素在数组中的位置

        unsigned long c = [a indexOfObject:@"Rose"] + 1;

        NSLog(@"%lu",c);




//   

NSLog(@"%@",a[1]);

//    //获取集合元素个数

//   

NSLog(@"%lu",a.count);

//    //获取第三个

//   

NSLog(@"%@",[a objectAtIndex:2]);

//    //是否包含某一个元素

//    BOOL b = [a

containsObject:@"Jim"];

//    if(b)

//    {

//       

NSLog(@"包含");

//    }

//    else

//    {

//       

NSLog(@"不包含");

//    }

//    //返回最后一个元素,第一个元素

//   

NSLog(@"%@",[a lastObject]);

//   

NSLog(@"%@",[a firstObject]);

//    //查找某个元素在数组中的位置

//    unsigned long c =

[a indexOfObject:@"Rose"] + 1;

//   

NSLog(@"%lu",c);



  //NSArray数据写入到文件中

        BOOL res = [a writeToFile:@"/Users/badaniao/Desktop/qqq.txt" atomically:YES];



  //从文件中读取数据到NSArray

        NSArray *b = [NSArray

arrayWithContentsOfFile:@"/Users/badaniao/Desktop/qqq.txt"];

        NSLog(@"%@",b);


  //将数组元素链接成字符串

        NSString *c = [b componentsJoinedByString:@"-"];

        NSLog(@"%@",c);


  //字符串分割成一个数组的方法

        NSArray *d = [c componentsSeparatedByString:@"--"];

        NSLog(@"%@",d);


【理解】NSArray给所有元素发消息

让集合里面的所有元素都执行aSelector这个方法

- (void)makeObjectsPerformSelector:(SEL)aSelector;

- (

void)makeObjectsPerformSelector:(SEL)aSelector

withObject:(id)argument;


NSDictionary


1、什么是NSDictionary?

NSDictionary翻译过来叫做”字典”

日常生活中,

    “字典”的作用:通过一个拼音或者汉字,就能找到对应的详细解释。

2、NSDictionary的作用:

类似通过一个key,就能找到对应的value。

NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改。

3、NSDictionary的创建

+ (instancetype)dictionary;

+ (instancetype)dictionaryWithObject:(

id)object

forKey:(id)key;

+ (instancetype)dictionaryWithObjectsAndKeys:(

id)firstObject,...;

+ (

id)dictionaryWithContentsOfFile:(NSString*)path;

+ (

id)dictionaryWithContentsOfURL:(NSURL *)url;


4、NSDictionary的常见使用

返回字典的键值对数目

- (NSUInteger)count;

根据key取出value

- (id)objectForKey:(id)aKey;

5、NSDictionary的遍历

1> 快速遍历

for

(NSString *key in dict) { }

2> block遍历

[dict

enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { }];


NSDictionary操作


  //NSDictionary的创建与获取元素


  NSDictionary *dic = @{@"name":@"Jack",@"sex":@"男"};

        NSLog(@"%@",dic[@"name"]);


  //NSDictionary的文件操作


    BOOL b = [dic writeToFile:@"/Users/badaniao/Desktop/qqq.txt"             atomically:YES];

        // URL:- (BOOL)writeToURL:(NSURL *)url

atomically:(BOOL)atomically;



NSMutableDictionary


1、NSMutableDictionary介绍

什么是NSMutableDictionary ?

NSMutableDictionary是NSDictionary的子类

NSDictionary是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,

    不能删除里面的元素, 也不能再往里面添加元素

NSMutableDictionary是可变的,随时可以往里面添加\更改\删除元素.

2、NSMutableDictionary的常用方法

添加一个键值对(会把aKey之前对应的值给替换掉)

- (void)setObject:(id)anObject forKey:(id )aKey;

通过aKey删除对应的value

- (void)removeObjectForKey:(id)aKey;

删除所有的键值对

- (void)removeAllObjects;

3、NSMutableDictionary的简写

设置键值对

以前

[dict

setObject:@"Jack" forKey:@"name”];

现在

dict[@"name"]

= @"Jack";

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容