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";

你可能感兴趣的:(OC-Foundation等)