类方法 异常处理 NSString

IOS学习第19天

类的对象与方法

  • 对象作为方法的返回值
1.买狗
    - (Dog *)buyDog;
在OC中 目前只有NSString *  和 对象需要 类名* 对象名

2.上帝造人
    - (Person *)makeAPerson;

3.对象作为方法的返回值的时候 本质并不是返回对象的本身,而是返回这个对象在堆区中的地址
  • 对象作为类的属性
1.回顾[类名 new]在内存中干的几件事
1>在堆区中开辟空间,存对象
2>给成员变量初始化a.基本数据类型0 b.OC指针nil c.C指针NULL
3>返回对象在堆区中的首地址给存在于栈区中的指针


2.如果 A的对象中拥有B的对象:
        B的对象作为A的成员变量
@interface B : NSObject

@end

@interface A : NSObject
{
   B * b;
}
@end


    那么 执行 A* aa = [A new] 会不会创建对象B?
    不会自动创建B对象,只会有一个指针 初始化值是nil
    再创建一个B对象 B * bb = [B new];
    "让A对象拥有B对象
     aa->b = bb;
     ```

* 异常处理
  1. 处理异常:
    @try
    {
    //在执行 过程中可能出错的代码
    }
    @catch(NSException * exc)
    {
    //如果上面的代码出现异常 就会执行这里的代码
    //所以这里一般写 处理异常的代码
    }
    @finally
    {
    //无论@try中有没有发生异常,这里的代码都会执行
    }
    “`

类方法

  • 类方法的基本使用
.什么是类方法
    以 "+" 开头的方法
2.类方法的格式
    + (返回值类型)方法名;

3.类方法如何调用
    用过 类名直接调用
    [类名 类方法名];

4.类方法的注意事项:
    1>在类方法中不能直接访问 类的属性

    2>在类方法中不能直接调用其他的对象方法
5.什么时候用类方法?
    当你写一个方法 发现 这个方法没有用到属性 也没有调用其他对象方法
    那么这个方法 可以写成类方法
    ```
* **使用类方法需要注意的问题**

1.同一个类的两个对象方法不能同名,两个类方法也不能同名
“但是类方法和对象方法可以同名
编译器会根据 调用者不同 来判断具体应该调用那一个方法

2.对象方法只能通过对象调用,类方法只能通过类名调用

总结:无论在代码的哪里
只要有对象,那么就可以通过这个对象调用对象方法
只要有类名,那么就可以通过这个类名调用类方法
“`

  • 类方法的规范
1.苹果官方的规范:
    "写一个类,就要为这个类提供一个和这个类同名的类方法
    在这个类方法内创建一个当前类的纯洁的对象并返回出去.


2.此时,在外界想创建一个对象有两种方式,一种是用类名调用new方法,另一种是通过类名调用和当前类同名的类方法

NSString的常用方法

//通过指定一个C字符串 创建一个OC字符串对象
NSString *str1 = [NSString stringWithUTF8String:C语言字符串];
//创建一个拼接后字符串
NSString *str2 = [NSString stringWithFormat:@"格式控制符",常量/变量];
//获取字符串的长度,不管中英文都是算1个长度
NSUInteger len = 指向字符串的指针.length;
//获取字符串中的指定下标的字符
unichar c = [指向字符串的指针 characterAtIndex:0或者正整数];
"注意:
中文字符 OC中 占两个字节
C中占 三个字节
打印 unichar字符 使用 %C


//判断两个字符串的内容的大小关系
int result = [指向字符串的指针 compare:指向字符串的指针2];



//判断两个字符串的内容是否相等
BOOL result2 = [指向字符串的指针 isEqualToString:指向字符串的指针2];

版权声明:本文为MA7777777__原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。