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

前一篇博客最后介绍了KVC 再json 转模型时遇到一些问题.今天接着来介绍KVC 的其他用法.其实我们在一开始的时候就一直再强调命名的重要性.命名规范是KVC 存活的基础.如果没有这个条件支撑,那么KVC使用起来就不会那么简单了.在这里大王再哔哔几句,作为一个程序员,不管我们长得有多丑,我们的代码一定好看.一段规范的代码代表我们的脸面,也是程序员成熟的标志.既然说到了命名,那么就再来看看KVC 让人吃惊的一面. 1)KVC 方法的搜索顺序 当你看到这个标题的时候,可能会诧异,说的是啥啊?啥是搜…
熟练使用KVC 可以再开发过程中可以给我们带来巨大的好处,尤其是在json 转模型的时候,KVC让程序员摆脱了繁琐无营养的代码堆积.减少代码量就是减少出错的概率.KVC 用起来很灵活,这种灵活的基础是严格的命名要求.这种命名要求其实是一种约定.再程序的世界里,约定的作用远远大于开发本身,良好的约定可以使程序员摆脱很多判断,也减少了错误.KVC有如下几点作用: 1).直接赋值 使用KVC 可以对对象的某个属性进行赋值.假定现在我们有一个Person 类,类中包含两个属性:一个是只读的name 属性…
一些公用类: @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的开发中,为了照顾用户体验,我们通常将那些耗时的操作的放到主线程以为的线程…
二.移魂大法 使用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…
多线程技术是有多套解决方案的,那么我们该如何选择呢? 技术方案 简介 语言 线程生命周期 使用频率 pthread 1.一套通用的多线程API 2.适用于UNIX,linux,windows等 3.跨平台,可移植 4.使用难度较高 C 程序员管理 几乎不用 NSThread 1.更加面向对象 2.简单易用,可直接操作线程对象 OC 程序员管理 偶尔使用 GCD 1.用来替代NSThread等线程技术 2.充分利用设备的多核 C 自动管理 经常使用 NSOperation 1.基于GCD(底层是G…