• 海空联合演练相关新闻 2019-01-05
  • 登录 立即注册
    金钱:

    广州快乐十分开奖记录

    陕西快乐十分玩法规则:学习 runtime 项目

    [复制链接]
    来自: code4app 分类: iOS精品源码 上传时间: 2016-3-4 19:50:39
    Tag:runtime , 运行时

    项目介绍:

    广州快乐十分开奖记录 www.2hyn.net 学习Objective-C的运行时Runtime系统是很有必要的。个人觉得,得之可得天下,失之则失天下。

    Objective-C提供了编译运行时,只要有可能,它都可以动态地运作。这意味着不仅需要编译器,还需要运行时系统执行编译的代码。运行时系统充当Objective-C语言的操作系统,有了它才能运作。

    运行时系统所提供功能是非常强大的,在实际开发中是经常使用到的。比如,苹果不允许我们给Category追加扩展属性,是因为它不会自动生成成员变量,那么我们通过运行时就可以很好的解决这个问题。另外,常见的模型转字典或者字典转模型,对象归档等。后续我们再来学习如何应用,本节只是讲讲理论。

    与Runtime交互

    Objective-C程序有有三种与runtime系统交互的级别:

    • 通过Objective-C源代码
    • 通过Foundation库中定义的NSObject提供的方法
    • 通过直接调用runtime方法
    通过Objective-C源代码

    在大多数的部分,运行时系统会自动运行并在后台运行。我们使用它只是写源代码并编译源代码。当编译包含Objective-C类和方法的代码时,编译器会创建实现了语言动态特性的数据结构和函数调用。该数据结构捕获在类、扩展和协议中所定义的信息。

    最重要的runtime函数是发消息函数,在编译时,编译器会转换成类似objc_msgSend这样的发送消息的函数。因此,我们通过写好源代码,编译器会自动帮助我们编译成runtime代码。

    通过NSObject提供的方法

    在Cocoa编程中,大部分的类都继承于NSObject,也就是说NSObject通常是根类,大部分的类都继承于NSObject。有些特殊的情况下,NSObject只是提供了它应该要做什么的模板,却没有提供所有必须的代码。

    有些NSObject提供的方法仅仅是为了查询运动时系统的相关信息,这此方法都可以反查自己。比如-isKindOfClass:和-isMemberOfClass:都是用于查询在继承体系中的位置。-respondsToSelector:指明是否接受特定的消息。+conformsToProtocol:指明是否要求实现在指定的协议中声明的方法。-methodForSelector:提供方法实现的地址。


    相关源码推荐:

    我来说两句
    *滑动验证:
    所有评论(1)
    bruceliu3385 2016-4-9 18:18:10
    学习中,runtime好像可以用来调用私有方法
    回复
    bruceliu3385 2016-4-9 18:18:25
    学习学习!
    回复
    王山城 2016-4-19 15:00:42
    楼主威武啊,Code4App有你更给力!
    回复
    ivio0744 2016-4-21 15:53:04
    正需要啊,感谢楼主无私分享!
    回复
    qd1332543 2016-5-3 11:47:44
    感谢分享,Code4App有你更精彩:)
    回复
    yuanshihong 2016-5-6 10:16:07
    楼主威武啊,Code4App有你更给力!
    回复
    ls806850817 2016-5-20 11:01:01
    学习学习!
    回复
    l1128d 2016-7-13 10:53:33
    强烈支持楼主ing……
    回复
    qq360078224 2016-7-20 10:11:17
    很给力,Code4App有你更精彩!
    回复
    提取码:  下载次数:60 状态:已购或VIP 售价:0(原价:2)金钱 下载权限:初级码农 
    2666 0 60
    联系我们
    首页/微信公众账号投稿

    帖子代码编辑/版权问题

    QQ:435399051,742864542

    如何获得代码达人称号?

    代码贡献英雄榜
    用户名 下载数
    通过邮件订阅最新 Code4App 信息
    上一条 /4 下一条
    联系我们
    关闭
    合作电话:
    13802416937
    Email:
    [email protected]
    商务市场合作/投稿
    问题反馈及帮助
    联系我们

    广告投放| Github|申请友链|手机版|广州快乐十分开奖记录 ( 粤ICP备15117877号-1 )

    快速回复 广州快乐十分开奖记录 返回列表
  • 海空联合演练相关新闻 2019-01-05