当前位置: 首页 > news >正文

淄博三合一网站开发旅游电子商务网站建设与研究

淄博三合一网站开发,旅游电子商务网站建设与研究,芜湖企业100强,简单描述网络营销的特点一、runtime的动态性 OC的运行时系统(Runtime System)提供了丰富的动态特性,包括类与对象的创建、消息发送与转发、方法的动态添加与替换、属性的动态合成等。通过使用运行时库提供的API,可以在运行时获取和操作类与对象的信息,实现各种动态性的功能。 我对 Runtime 的理…一、runtime的动态性 OC的运行时系统(Runtime System)提供了丰富的动态特性,包括类与对象的创建、消息发送与转发、方法的动态添加与替换、属性的动态合成等。通过使用运行时库提供的API,可以在运行时获取和操作类与对象的信息,实现各种动态性的功能。 我对 Runtime 的理解是,它是 Objective-C 语言的核心之一,为我们提供了一种在程序运行时动态操作类和对象的能力。通过 Runtime,我们可以在不修改源代码的情况下,实现诸如动态创建类、添加成员变量、调用方法、交换方法实现等功能,从而实现更灵活、更动态的编程方式。 二、应用场景 1、实现Runtime在分类创建属性(添加关联对象) 当使用 Objective-C 的分类来添加属性时,通常情况下是无法直接在分类中声明实例变量的,因为分类不允许添加实例变量。但是,我们可以利用 Runtime 来实现在分类中添加属性的功能,具体步骤如下: 定义关联的键值:为了关联属性和其对应的存取方法,需要定义一个全局唯一的键值。 实现属性的 getter 和 setter 方法:在分类中实现属性的 getter 和 setter 方法,这些方法将通过 Runtime 添加到分类中。 使用 Runtime 添加属性:在分类的实现文件中,通过 Runtime 的函数来动态地为类添加属性。 下面是一个示例代码,演示了如何使用 Runtime 在分类中添加属性: #import objc/runtime.h// 定义关联的键值 static char kAssociatedObjectKey;@interface NSObject (MyCategory)// 声明属性 @property (nonatomic, strong) NSString *myProperty;@end@implementation NSObject (MyCategory)// 实现属性的 getter 方法 - (NSString *)myProperty {// 使用关联对象获取属性值return objc_getAssociatedObject(self, kAssociatedObjectKey); }// 实现属性的 setter 方法 - (void)setMyProperty:(NSString *)myProperty {// 使用关联对象设置属性值objc_setAssociatedObject(self, kAssociatedObjectKey, myProperty, OBJC_ASSOCIATION_RETAIN_NONATOMIC); }@end2--黑魔法:交换方法用于统一处理某个方法 管理类方法.h #import Foundation/Foundation.h@interface AARunTimeUtility : NSObject /**交换实例方法@param cls 当前class@param originalSelector originalSelector description@param swizzledSelector swizzledSelector description@return 返回*/ + (BOOL)swizzlingInstanceMethodInClass:(Class)cls originalSelector:(SEL)originalSelector swizzledSelector:(SEL)swizzledSelector;/**交换类方法@param cls 当前class@param originalSelector originalSelector description@param swizzledSelector swizzledSelector description@return 成*/ + (BOOL)swizzlingClassMethodInClass:(Class)cls originalSelector:(SEL)originalSelector swizzledSelector:(SEL)swizzledSelector;@end.m文件 #import "AARunTimeUtility.h" #import objc/runtime.h@implementation AARunTimeUtility+ (BOOL)swizzlingInstanceMethodInClass:(Class)cls originalSelector:(SEL)originalSelector swizzledSelector:(SEL)swizzledSelector {Class class = cls;Method originalMethod = class_getInstanceMethod(class, originalSelector);Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector);BOOL didAddMethod = class_addMethod(class, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod));if (didAddMethod){class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));}else{method_exchangeImplementations(originalMethod, swizzledMethod);}return didAddMethod; }+ (BOOL)swizzlingClassMethodInClass:(Class)cls originalSelector:(SEL)origi
http://www.hkea.cn/news/14528898/

相关文章:

  • 上海网站建设的英文php做商城网站步骤
  • 网站服务器类型查询六枝特区建设局网站
  • 建设部信息中心网站东莞网络科技营销
  • 两学一做专题网站素材英文网站建设哪家好
  • 青岛网站制作seo《网站建设教程
  • 贸易网站怎么做如何向百度提交网站
  • 保洁公司 网站模板本地唐山网站建设
  • 做网站兼职wordpress验证登录页面
  • design设计网站html5视频标签
  • 樟木头网站仿做优化大师人工服务电话
  • 微官网与网站的区别流行的网站设计风格
  • 带数据库的网站模板域名ip查询查网址
  • 电商网站建设与管理文联网站建设方案
  • 做网站选哪家公司网站欣赏网站
  • 网站正在建设中页面的英文wordpress无法选择数据库
  • 网站编辑容易做吗cumfoot wordpress
  • 用dw做网站时怎么添加弹窗开发公司退房款代理词
  • 快手做任务网站7有免费建网站
  • wordpress统一网站图片大小wordpress 代码执行
  • 网站建设 国家技术规范网页怎么做才美观
  • 东莞纸箱厂东莞网站建设江苏网站建设seo优化
  • 做一个购物网站多少钱广州互联网
  • 人才网站 建设好 窗口wordpress 繁简转换插件
  • 做效果图常用的网站9420高清免费视频在线观看
  • 怎么自己做彩票网站网站顶部地图代码怎么做
  • 那个网站系统好山东东成建设咨询有限公司网站
  • 营销型网站建设排名营销策划的流程
  • 镇江高端网站建设工作室网站什么时候做SEO优化最合适
  • 苏州网络营销网站建设平台网站域名可以做端口映射吗
  • 凯里网络公司建设网站买网站做淘宝客