永发信息网

兼语句是什么意思,Objective-C是动态语言吗?为什么

答案:1  悬赏:0  手机版
解决时间 2021-05-15 16:22
兼语句是什么意思,Objective-C是动态语言吗?为什么
最佳答案
是的,因为只有到运行时才知道对象的类型。
Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有动态类型(Dynamic typing),动态绑定(Dynamic binding)和动态加载(Dynamic loading)。
这些动态特性都是在Cocoa程序开发时非常常用的语言特性,而在这之后,OC在底层也提供了相当丰富的运行时的特性,比如枚举类属性方法、获取方法实现等等。虽然在平常的Cocoa开发中这些较底层的运行特性基本用不着,但是在某些情况下如果你知道这些特性并合理加以运用的话,往往能事半功倍~
动态特性基础
1、动态类型
即运行时再决定对象的类型。这类动态特性在日常应用中非常常见,简单说就是id类型。id类型即通用的对象类,任何对象都可以被id指针所指,而在实际使用中,往往使用introspection来确定该对象的实际所属类:
2、动态绑定
基于动态类型,在某个实例对象被确定后,其类型便被确定了。该对象对应的属性和响应的消息也被完全确定,这就是动态绑定。在继续之前,需要明确Objective-C中消息的概念。由于OC的动态特性,在OC中其实很少提及“函数”的概念,传统的函数一般在编译时就已经把参数信息和函数实现打包到编译后的源码中了,而在OC中最常使用的是消息机制。调用一个实例的方法,所做的是向该实例的指针发送消息,实例在收到消息后,从自身的实现中寻找响应这条消息的方法。
3、动态加载
根据需求加载所需要的资源,这点很容易理解,对于iOS开发来说,基本就是根据不同的机型做适配。最经典的例子就是在Retina设备上加载@2x的图片,而在老一些的普通屏设备上加载原图。随着Retina iPad的推出,和之后可能的Retina Mac的出现,这个特性相信会被越来越多地使用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
关于网络红人林仔仔?
大黄蜂这样改造怎么样?
Q群绑定校友班级后,如何拉群友入校友班级?
QQ号怎么不被盗
在哪获新手礼包
松北区中国邮政(商大邮电所)地址在什么地方,
我的问道电子密保被我不小心删除了,怎么办``
起凡曹丕出什么
如果生活难题太多,是不是睡觉不想更好?
英语日记10篇 初中水平
武昌区金库世界KTV(岳家嘴店)地址是什么,有
为什么东西掉了老是找不到呢
关于书的谚语 5分
dnf鬼剑士怎么会放出2个十字斩
拜仁在哪个赛季大胜过巴萨?比分是多少?
推荐资讯
洪湖市汊河镇第一小学在什么地方啊,我要过去
舞阳县大脸鸡排这个地址在什么地方,我要去这
描写夏天树荫的诗句
肇源县雪花啤酒(肇源总经销)这个地址怎么能查
国内最大的钢铁厂是那个,有多少员工?
女生反话潜台词大全,【恋爱高手进】女生这么
NDS的忍龙的地下宫殿关卡怎么过?
头像上传不成功怎么办
罗田县河铺镇冰臼群在什么地方啊,我要过去处
狙击精英简体中文版下载
真的有长久的爱情吗?
东莞市常平镇麦园村雨具厂电话是多少
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?