首页 > 代码库 > 《OC疯狂讲义》笔记(二)

《OC疯狂讲义》笔记(二)

 1、NSString的使用
 
     C的字符串保存:1)字符数组      2)字符串的指针


     OC中又专门的字符串处理的类(有字符串类型)
     NSString  不可变的字符串
     NSMutableString 可变字符串
 
     NSString 是OC字符串的类
 
     1) NSString保存字符串
        NSString *str = @"abc";    //用str保存字符串常量
        创建空字符串
        NSString *str = [NSString new];
        str = @"xxxx";
 
        格式化字符串(拼接)
             stringWithFormat
        字符串连接
            NSString *str1="itcast";
            NSString *str2 = [NSString stringWithForamt:@"welcome to %@",str1];      // welcome to itcast
 
        字符的拼装
 
            NSString *str3 = [[NSString alloc] initWithFormat:@"welcome %d,%f",20,2.3f];   // welcome 10,2.300000
 
            NSString *str4 = @"welcome 10,2.300000";
 
 
     2)计算NSString的字符串的长度
            [str length];
        1) 纯英文
 
            NSString  *str5 = @"abc";   // 3
 
        2)纯中文
      
            //UTF-8  国际通用编码3    GB2312   国内标准2   GBK
 
            NSString  *str6 = @"传智播客";  //4
 
            char *str7 = "传智播客";        //12
 
        3)中英文混合
 
            NSString  *str6 = @"传智播客xy";  //6
 


  2、对象和方法之间的关系


    (1)对象作为方法的参数
 
         Person *p = [Person new];
         Person *p1 = [Person new];
 
         -(void)test:(Person *) person;
 
         [p test:p1];
 
         //p1 -----> person
 
    (2)对象作为方法的返回值
 
         -(Person *)test1{
 
               //p3 0x40
               Person *p3 = [Person new];
               p3->_name = @"zhe";
 
              return p3;
 
          }
 
          //p4 0x40
          Person *p4 = [p test1];
 
  3、对象作为方法的参数,连续传递
 
          1)枪作为方法的参数
 
          -(void)fireByGun:(Gun*) gun;
          -(void)fireByGun:(Gun*) gun{
              
                 [gun shoot];
          }
 
 
          2)增加了 子弹的类
 
          -(void)fireByGun:(Gun *) gun andBullet:(Bullet *) bullet;
 
          -(void)fireByGun:(Gun *) gun andBullet:(Bullet *) bullet{
 
                 [gun shoot:bullet];
          }


          //枪的方法
          -(void)shoot:(Bullet *)bullet;
 
          -(void)shoot:(Bullet *)bullet{
 
                bullet->_bulletCount --;
 
          }


  4、多文件开发


         什么是多文件开发?
         C的模块化开发: 把功能相似的函数,写到同一个文件中
 
                       .h   函数声明
 
                       .c   函数的实现
 
         OC 模块化开发: 把功能不同的类放到不同的文件中
 
                       .h   类的声明
 
                       .m   类的实现 (方法的实现)
 
         多文件开发的好处:提高代码的可读性 


         如何进行多文件:
 
          1)new ---> new File ---> Header file(.h)
                               ---> Objective-C file (.m)


             Person.h
 
               规范: 1) @interface Person :NSObject
 
                     2) #import <Foundation/Foundation.h>
 
             Person.m
 
                     3)#import "Person.h" (new  Cocoa Class 会自动写这句话)
 
                        @implmentation Person 
 
                        @end


          2) new ----> new File ----> Cocoa Class (同时创建.h 和 .m)

《OC疯狂讲义》笔记(二)