iOS 运行时

1.点击每一个cell都要跳转到一个控制器,swich会很麻烦,那么可以用运行时来进行跳转。

a. 定义一个数组用来存放控制器的名字

- (NSArray *)controllerArr{
    if (_controllerArr == nil) {
        _controllerArr = @[@"View1Controller",@"View2Controller",@"View3Controller"];
    }
    return _controllerArr;
}

b. 在点击cell时进行动态加载控制器

id controller = [[NSClassFromString(self.controllerArr[indexPath.row]) alloc]init];
[self.navigationController pushViewController:controller animated:YES];

优点:

弱化连接,因此并不会把没有的Framework也link到程序中。

不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。

注意:也就是说可以不用导入控制器的头文件哦。。。。

时间: 2024-11-05 18:36:00

iOS 运行时的相关文章

iOS 运行时ScrollView上出现空白空间-解决方案

iOS7 中的UIViewControllers设置了automaticallyAdjustsScrollViewInsets.如果是YES,scrollview会根据status bar, navigation bar以及tool bar或者tab bar的高度自动调整.可以通过在storyboard的右侧进行设置,在Attributes Inspector中,不勾选"Adjust Scroll View Insets". 翻译自: http://stackoverflow.com/

iOS运行时Runtime浅析

运行时是iOS中一个很重要的概念,iOS运行过程中都会被转化为runtime的C代码执行.例如[target doSomething];会被转化成objc)msgSend(target,@selector(doSomething))来执行.这篇博客会较为全面的来讲解下Runtime. OC是一门动态语言,它将很多静态语言在编译和链接时做的事放到了运行时来处理.这种动态语言的优势在于:写代码能更加灵活,可以把消息转发给想要的对象,或者随意交换一个方法的实现. OC Runtime目前有两个版本:M

iOS 运行时RunTime使用场景一:打点统计用户行为,深度解耦

转自:http://www.jianshu.com/p/0497afdad36d 用户统计.jpeg 用户行为统计(User Behavior Statistics, UBS)一直是移动互联网产品中必不可少的环节,也俗称埋点.在保证移动端流量不会受较大影响的前提下,PM们总是希望埋点覆盖面越广越好.目前常规的做法是将埋点代码封装成工具类,但凡工程中需要埋点(如点击事件.页面跳转)的地方都插入埋点代码.一旦项目越来越复杂,你会发现埋点的代码散落在程序的各个角落,不利于维护以及复用.本文旨在探讨利用

iOS 运行时(runtime)浅析

本博客,直接从分类说起.都知道OC中的分类是不能直接添加属性的,意思间接是能添加属性的.那应该怎么添加呢?那就要用到运行时(runtime)机制. 一,运行时金典用法之一 现在,给HGPerson类增加一个分类:HGPerson+HG.h,给一个属性如下: @property (nonatomic, copy) NSString* name; 貌似,这样写了以后,是能调用的,但是运行就报错了. -[HGPerson setName:]: unrecognized selector sent to

IOS 运行时(runtime)机制

1. 概述 OC 是一个全动态语言,OC 的一切都是基于 Runtime 实现的 只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法` 2. 运行时机制 运行时机制是用 C++ 开发的,是一套苹果开源的框架 OC 是基于运行时开发的语言 3. 应用场景 运行时动态获取类的属性 主要应用: 字典转模型框架 MJExtension,JSONModel 利用 关联对象 为分类添加属性 利用 交换方法 拦截系统或其他框架的方法 误区:并不是使用的技术越底层,框架的效率就会越高 导入头文件

iOS运行时 runtime

1.运行时介绍 1. 什么是运行时 运行时机制是用 C++开发的,是一套苹果开源的框架 OC 是基于运行时开发的语言,在OC中所有的类都是运行的时候才加载. 2. OC语言 OC 是一个全动态语言,OC的一切都是基于 Runtime实现的 只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法 3. 使用场景 1. 运行时动态获取类的属性 //主要应用:字典转模型框架 MJExtension,JSONModel 2.利用关联对象为分类添加属性 3.利用交换方法拦截系统或其他框架的方法

iOS运行时,如何增加成员变量

必须实现getter和setter方法 ``` - (void)setName:(NSString *)name { /** * 为某个类关联某个对象 * * @param object#> 要关联的对象 description#> * @param key#> 要关联的属性key description#> * @param value#> 你要关联的属性 description#> * @param policy#> 添加的成员变量的修饰符 descripti

运行时(iOS)

运行时(iOS) 一.什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是一种非常牛逼.开发中经常用到的底层技术) 二.运行时的作用? 能获得某个类的所有成员变量 能获得某个类的所有属性 能获得某个类的所有方法 交换方法实现 能动态添加一个成员变量 能动态添加一个属性 能动态添加一个方法 三.案例:运行时获取成员变量名称 1.分析 #import <Foundation/Foundation.h> #import "XMGPerson.h" #im

iOS App 的运行时

App被启动时,从非运行状态到短暂的非激活状态,然后切换到运行状态或者后台运行状态.在启动过程中,操作系统对App创建了一个主线程来调用main方法. main方法是App的入口,用来调用UIKit框架和做一些程序运行前的预处理.XCode项目模板自动生成了mian方法,调用UIApplicationMain iOS也有自动内存管理,ARC(Automatic Refenerce Counting),@autoreleasepool中的代码的内存管理被ARC托管 App在后台运行时,会监听一些后