静态类型、动态类型

 我来答
户如乐9318
2022-06-26 · TA获得超过6667个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:140万
展开全部
1.静态类型和动态类型

    静态类型

        将一个指针变量定义为特定类的对象时,使用的是静态类型,在编译的时候就知道这个指针变量所属的类,这个变量总是存储特定类的对象。

    动态类型

        这一特性是程序直到执行时才确定对象所属的类

2.为什么要有动态类型?

    (1).我们知道NSObject是OC中的基类

    (2).那么任何对象的NSObject类型的指针可以指向任意对象,都没有问题

    (3).但是NSObject是静态类型,如果通过它直接调用NSObject上面不存在的方法,编译器会报错。

    (4).你如果想通过NSObject的指针调用特定对象的方法,就必须把NSObject * 这种类型强转成特定类型。然后调用。如下

    (5).id 是一种通用的对象类型,它可以指向属于任何类的对象,也可以理解为万能指针 ,相当于C语言的 void *

    (6).因为id是动态类型,所以可以通过id类型直接调用指向对象中的方法, 编译器不会报错

    注意:

3.id数据类型与静态类型

    虽然说id数据类型可以存储任何类型的对象,但是不要养成滥用这种通用类型

    动态类型判断类型

3.id与instancetype区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式