OC-精华 及 学习方法——浑水摸鱼 基础 字符串 数组 字典

一.学习方法——浑水摸鱼

  所谓浑水摸鱼  就是把水给搅浑后再摸鱼

 浑水:就是听课和学习的过程,在听老师课堂的时候 听懂了 只代表你接受了老师的观点,他说服了你,但这不代表学会了,这只是把水搅浑了。

摸鱼:摸鱼的过程  就是自己摸索、归纳、总结,发现问题,解决问题的一个过程,不总结,不归纳,永远都摸不到鱼,只是把水给搅浑了,并没有收获

二.类与对象

类:抽象出来的一类  才叫类

对象:面向对象  万事万物皆对象

三.使用OC写程序的基本工具

(一).setter getter 方法 与  自定义构造方法(注意自定义构造方法  只能在初始化一个对象的时候使用

(1).方法

 setter方法:设置者

- voidsetname:(nssstring *name

getter方法:获取

- (nsstring *)getName

 

 setter 方法的公式

 - voidset属性名:(属性的类型)形参名;

getter公式:

 - (属性类型)属性名;

(2). 点语法 .)又叫属性  可以通过点给属性赋值 取值

 .h文件中:  @property  属性类型 属性名  //重点 (以前在.m里还要写synthesize现在不用)

 @property表示声明属性  @synthesize表示实现属性的方法  可能面试考

 

 现在@property  既包含声明  也包含实现

(3).构造方法

 init

 自定义构造方法

  1.公式:- idinitWith要初始的名字:(数据类型)形参名

        {

           self = [super init];

            if(self)

              {

 

               }

             return  self;

         }

 

   2.本质:就是一个有参数  有返回值的方法   但是自定义构造函数有一定的意义  表示一个创建对象的方法 

    标识它有特殊意义的符号:

        1)必须用initWith作为方法的开头 并且必须大写

   2)方法实现的公式 自定义构造函数 必须实现下面的功能

                       self = [super init];

                        if(self)

                         {

 

                        }

                         return  self;

3.注意:(1initWith   W必须大写

        2)自定义构造方法  需要声明   .h文件里声明

4.使用目的  就是传值

   属性在正向传值是  都可以使用属性

(二)字符串的处理

#一#.不可变字符串

(1)初始化空的字符串

  NSString*string = [NSString string];

  NSString *string = [[NSStringalloc]init];

(2)

2.初始化并赋值

        NSString *string = @"我是好学生。";//常用的方法

3.大小写转换

       关键词:uppercaseString(转成大写) 

                     lowercaseString (转成小写)

        capitalizedString(首字母大写)

例题:

       NSString * string = @"I  am  wanglong";

       NSString *s1 = [string uppercaseString];

        NSLog(@"%@",s1);//转成了大写

       NSString *s2 = [string lowercaseString];

        NSLog(@"%@",s2);//转成了小写

       NSString * s3 = [string capitalizedString];

        NSLog(@"%@",s3);//把首字母转成了大写其它不变

4.判断字符串是不是以什么开头或者结尾

关键词:     hasPrefix      hasSuffix

例题1:(判断开头是不是王)

         NSString * string = @"王龙";

       BOOL s = [string hasPrefix:@""];//注意用bool变量来接收

       if (s!=NO){

           NSLog(@"是以王字开头的");

       }

       else{

           NSLog(@"不是以王字开头的");

       }

例题2:(判断结尾是不是龙)

               NSString * string = @"王龙";

       BOOL s1 = [string hasSuffix:@""];(注意用bool变量进行接收)

       if (s1!=NO){

           NSLog(@"是以龙字结尾的");

       }

       else{

           NSLog(@"不是以龙字结尾的");

       }

5.查看字符串是否包含什么字符

关键词:rangeOfString  

       NSNotFound  表示没找到

例如: NSString * string = @"王龙";

         NSRange  range = [string rangeOfString:@""];  //注意类型

        if(range.location!=NSNotFound) {   //注意条件的填写

           NSLog(@"找到了王字");

       }

       else{

           NSLog(@"没有找到王字");

       }

6.判断两个字符串是否相同

关键词:isEqualToString

例如:(注意用bool变量进行接收)

        NSString * string = @"王龙";

       BOOL  isEual = [string isEqualToString:@"王隆"];

       if (isEual!=YES){

           NSLog(@"这两个不相同");

       }

       else{

           NSLog(@"这两个相同");

       }

7.不可变字符串的拼接

 拼接字符串的方法  会返回一个拼接好的新的字符串

   stringByAppendingString:@""

   stringByAppendingFormat:@""

例如:NSString * string = @"王龙";

      NSString *new = [string stringByAppendingString:@"是个好人"];

       NSLog(@"%@",new);

       NSString *new1 = [string stringByAppendingFormat:@"66"];

       NSLog(@"%@",new1);

8.截取字符串

  关键词:

      1substringToIndex:2  从开头截到第2

      2substringFromIndex:3   从第三个截取到最后

      3substringWithRange:range 从第几个开始截到第几个//注意range的范围  自己设定

例题:

       NSString * string = @"大宝是个不知道操心的人";

       NSString *new1 = [string substringToIndex:2];

        NSLog(@"%@",new1);//截取前两个

       NSString *new2 = [string substringFromIndex:4];

       NSLog(@"%@",new2);//截取从第四个开始到最后

        NSRange range = {3,2};

       NSString *new3 = [string substringWithRange:range];

        NSLog(@"%@",new3);//截取一个范围的字符

9.格式化一个字符串(理解格式化的意思)

  NSString *s=[NSString stringWithFormat:@""];

10.格式化的拼接

stringByAppendingFormat@""拼接多个格式化的字符串

例题:  NSString * string = @"大宝是个不知道操心的人";

       NSString * s1 = @"是的";

       NSString *s2 = @"";

       int s3 = 100;

       NSString *new1 = [string stringByAppendingFormat:@"%@%@%d",s1,s2,s3];

       NSLog(@"%@",new1);

11.数据转换

   (1)把一个实型转换成字符串

    例如:

       float a = 100.0;

       NSString *string = [NSString stringWithFormat:@"%f",a];

       NSLog(@"%@",string);

#二#.可变字符串

1)初始化

   #.NSMutableString *string=[NSMutableString string];

  #. NSMutableString *s=[[NSMutableStringalloc]init];

2)初始化并赋值

      #NSMutableString *string1=[NSMutableStringstringWithString:@""];

  #.NSMutableString*string2=[NSMutableString stringWithFormat:@""];

 (3)拼接

           appendString 

    appendFormat拼接格式化的字符串(适用于拼接多个并且可以是不同类型的)

    例如:

    NSMutableString *string = [NSMutableString stringWithString:@"大宝是"];

      [string appendString:@"个不操心的人"];

       NSLog(@"%@",string);

 

       int a=100;

       NSString *s = @"确实";

       [string appendFormat:@"%d%@",a,s];

       NSLog(@"%@",string);

(4) 

    NSMutableString*string = [NSMutableString stringWithString:@"大宝是"];

  [stringinsertString:@"个不操心的人" atIndex:3];

        NSLog(@"%@",string);  增加

       NSRange range = {4,4};

  [string deleteCharactersInRange:range];

        NSLog(@"%@",string);  删除

        NSRange range1 = {4,1};

  [string replaceCharactersInRange:range1 withString:@""];

        NSLog(@"%@",string);  修改

(三).数组

 1.初始化

     NSArray *list1 = [[NSArray alloc]init];

   NSArray*list = [NSArray array];

 2.初始化并赋值

     1)直接赋值

           NSArray *arry = @[@"数组元素",@"数组元素"];

        (2)初始化只有一个元素的数组

   NSArray *list = [NSArray arrayWithObject:@"...."];

   (3)初始化有多个元素的数组(注意最后边一个元素的逗号不能省略 nil不能省略)

   NSArray *list = [NSArrayarrayWithObjects:@"kkk",@"ddd", nil];

 3.数组取值

    1)公式:数组名[下标];

              例如:(也可以用for循环进行遍历  注意 数组名.count 的使用)

          NSArray *list = @[@"",@"",@"学生"];

       NSString *s = list[0];

       NSLog(@"%@",s);

  2)通过方法取值

           关键词:oblectAtIndex

          例如: NSArray *list = @[@"",@"",@"学生"];

        NSString *s2 = [list objectAtIndex:1];

        NSLog(@"%@",s2);

  (3)数组遍历

            #:快速遍历

            例如: NSArray *list = @[@"",@"",@"学生"];

          for (NSString *string in list) {

           NSLog(@"%@",string);

          }

   拓展:用快速遍历来遍历对象时  注意条件的填写  类名

  4.把字符串  转成数组(注意第一步把字符串以某个符号分割开  此符号将被过滤掉)

例如:(注意关键词)

       NSString *string = @"冬天,夏天,春天,秋天";

       NSArray *list = [string componentsSeparatedByString:@""];

       for (NSString*s in list) {

           NSLog(@"%@",s);

       }

   5.把数组转换成字符串

例如:(注意关键词)

                    NSArray *list = @[@"",@"",@""];

        NSString *s =[list componentsJoinedByString:@""];

       NSLog(@"%@",s);

6.可变数组(注意不可直接赋值)

    1)不可变数组里边的方法  都可以在可变数组里用

    2)初始化空数组

    NSMutableArray*list = [NSMutableArray array];

     3)初始化并赋值

          #NSMutableArray *list = [NSMutableArrayarrayWithObjects:@"",@"", nil];  

       4)增     

           例如:

 NSMutableArray *list = [NSMutableArray arrayWithObjects:@"",@"",@"", nil];

       [list addObject:@""];

       for (NSString*s in list) {

           NSLog(@"%@",s);

        } 

       [list removeObject:@""];

       for (NSString *s1 in list) {

          NSLog(@"%@",s1);

        }删指定内容的

       [list removeObjectAtIndex:2];

       for (NSString *s2 in list) {

           NSLog(@"%@",s2);

        }  删指定下标的

        [list removeLastObject];删最后一个

       [listremoveAllObjects];删所有

       

     

 

//替换 

     [list replaceObjectAtIndex:0 withObject:@"王龙"];

       for (NSString*s3 in list) {

           NSLog(@"%@",s3);

       }

       

       

       

//查找内容   确定位置        

       NSString *a = @"";

       NSUInteger i = [list indexOfObject:a];

       NSLog(@"%lu",i);

(四).字典

 1.什么是字典

     key和值对应存在的数据集合就是字典

   2.初始化空的字典

      #. NSDictionary *d = [NSDictionary dictionary];

   #.NSDictionary *s = [[NSDictionary alloc]init];

  3.初始化字典并且赋值

     1.直接赋值(常用)

        公式:NSDictionary *dic =@{@"Key":@"",@"key1":@"1"};

   例如:NSDictionary *people1 = @{@"name":@"张三",@"age":@22,@"face":@"",@"height":@"",@"sex":@"",@"weight":@"50",};

  2.通过方法(函数)赋值(注意值和key的先后顺序)(不常用)

        例如:NSDictionary *p1 = [NSDictionary dictionaryWithObjectsAndKeys:@"张三",@"name", nil];

4.从字典里取值(通过key取值)

     1.公式:字典名[key]

         例如:NSString *name = people1[@"name"];(用到的字典就是上边的范例)

    2.字典的遍历

         #:用到的方法

      allKeys获得字典里所有的key

      allValues  获得字典里所有的值

       例如:(用到的字典还是上边的)

      NSArray *allKey = people1.allKeys;

         for (NSString *key in allKey) {  //用到快速遍历的for方法

           NSLog(@"%@",people1[key]);

       }

 3.通过方法(函数)取值

       1)先初始化并赋值一个字典如下:

                   NSDictionary *p1 = [NSDictionary dictionaryWithObjectsAndKeys:@"张三",@"name", nil];

   2)开始取值

       NSString *value =[people1 objectForKey:@"name"];

                  NSLog(@"%@",value);

       输出结果:张三

5.可变字典(增      查)

       增:[字典名 setObject:@“ forKey:@“key”];

       删:(1.删除一个

       公式:[字典名removeObjectForKey:@"key"];

                2.删除多个  

                    分析:定义一个数组,把想要删除的元素的key放进数组,如下:

        NSArray *keys = @[@"title"];

       [dic removeObjectForKey:keys];

                3.删除全部元素

                  公式:  [字典名removeAllObjects];

      改(替换):

                  分析 替换与增加一样  若原来那个键位有值那就是覆盖  没有就是添加

                  公式: [字典名 setObject:zhi forKey:key];



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值