类方法 异常处理 NSString

本文深入探讨了iOS开发中对象与方法的概念,包括对象作为方法返回值的本质、对象作为类属性的应用,以及类方法的使用规范等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值