您当前的位置: 首页 >  objective-c

清风清晨

暂无认证

  • 0浏览

    0关注

    71博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【id类型和NSObject指针 ObjectIve-C中】

清风清晨 发布时间:2022-08-03 22:41:13 ,浏览量:0

前言

1)NSObject,是Objective-C中,所有类的基类。 2)根据里氏替换原则LSP,NSObject指针就可以指向任何类型的Objective-C对象。 3)所以,我们说NSObject指针,是一个万能指针。 例如: NSObject *obj1 = [Person new]; NSObject *obj2 = [Student new]; NSObject *obj3 = @“jack”; 都是没有问题的。 但是, NSString *str = [Person new]; 就会被编译器给一个大警告,它说,你这个类型不一样! 4)所以,NSObject指针是1个万能指针,可以指向任意的OC对象。 5)但是,有一个问题: 如果,Person类中有一个sayHi()方法。 但是,你能不能通过obj1去调用这个sayHi()方法呢,答案是,不能! 因为,编译器认为obj1是NSObject类型的,NSObject类型里有sayHi()方法吗,没有,所以,编译器就认为不能调用! 那如果我非要调用呢,强转! [(Person *)obj1 sayHi]; 那这句话运行的时候,会不会出错,不会,因为obj1指向的对象里面,本来就有sayHi()方法吗! 如果要调obj2的study()方法呢,能直接调吗,也

关注
打赏
1663943137
查看更多评论
立即登录/注册

微信扫码登录

0.0368s