IOS 高级开发 runtime(二)】的更多相关文章

二.移魂大法 使用runtime还可以交换两个函数.先贴上代码和执行结果. #import <Foundation/Foundation.h> @interface DZLPerson : NSObject @property(nonatomic,weak)NSString *name; @property(nonatomic,assign)NSInteger age; -(void)test_inPerson; @end #import "DZLPerson.h" @im…
一. 简介 IOS 开发中灵活使用runtime 会提高我们的程序性能和开发速度.要想使用runtime,首先要引入系统的头文件. <span style="font-size:18px;">#import <objc/runtime.h> </span> 当我接触一样新的知识的时候,我比较喜欢先查看一下头文件,看看头文件里给我们提供了哪些接口.由于篇幅限制,我就偷个懒不往这里粘贴代码了.当我们查看runtime.h的时候,我们会发现,其实runti…
三 .动态添加方法 我们可以通过runtime动态地添加方法.那么到底啥叫动态添加方法呢?动态添加方法就是当我们程序运行时才知道我们应该调用哪个方法.我们首先需要了解这一点,当我们编写完一段代码后,我们点击run 的时候,编译器会先进行预编译.编译.链接.运行这几个步骤.C语言是再编译的时候就已经确定了函数的调用顺序,而OC在编译的时候,只是确定了哪个对象,发送什么消息,具体这个消息能不能找到对应的方法还不知道,只有在运行时,才能确定是否能够执行我们所期望的方法.我们以下面的代码为例: [per…
一些公用类: @interface ClassCustomClass :NSObject{ NSString *varTest1; NSString *varTest2; NSString *varTest3; } @property (nonatomic,assign)NSString *varTest1; @property (nonatomic,assign)NSString *varTest2; @property (nonatomic,assign)NSString *varTest3…
用C代替OC: #import <objc/runtime.h> #import <objc/message.h> #import <stdio.h> extern int UIApplicationMain (int argc,char *argv[],void *principalClassName,void *delegateClassName); struct Rect { float x; float y; float width; float height;…
11.系统类的方法实现部分替换 - (void) methodExchange { Method m1 = class_getInstanceMethod([NSStringclass],@selector(lowercaseString)); Method m2 = class_getInstanceMethod([NSStringclass],@selector(uppercaseString)); method_exchangeImplementations(m1, m2); NSLog(…
IOS高级开发-Runtime(一) IOS高级开发-Runtime(二) IOS高级开发-Runtime(三) IOS高级开发-Runtime(四) 一些公用类: @interface CustomClass : NSObject - (void) fun1; @end @implementation CustomClass - (void) fun1 { NSLog(@"fun1"); } @end @interface TestClass : NSObject @end @imp…
原文链接: http://liuyanwei.jumppo.com/2015/07/17/ios-BLE-1.html iOS蓝牙开发(一)蓝牙相关基础知识: 蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE peripheral,central == 外设和中心,发起连接的时central,被连接的设备为peri…
1.什么是NSOperation,NSOperationQueue? NSOperation是一个抽象的基类,表示一个独立的计算单元,可以为子类提供有用且线程安全的建立状态,优先级,依赖和取消等操作.系统已经给我们封装了NSBlckOperation和NSInvocationOperation两个实体类.使用起来也非常简单,不过我们更多的使用是自己继承并定制自己的操作. 2.我们为什么使用NSOperation? 在IOS的开发中,为了照顾用户体验,我们通常将那些耗时的操作的放到主线程以为的线程…
#import <Foundation/Foundation.h> @interface CustomClass : NSObject { NSString *varTest1; NSString *varTest2; NSString *varTest3; } @property(nonatomic,strong) NSString *varTest1; @property(nonatomic,strong) NSString *varTest2; @property(nonatomic,s…