- 博客(21)
- 收藏
- 关注
原创 关于NSTimer
关于NSTimer 在工作中经常会做一些延时任务,或者周期性任务,有时候也需要对取消延时任务操作。 延时任务一般有三种NSObject的 -(void)performSelector:(SEL)aSelector withObject:(nullable id)anArgument afterDelay:(NSTimeInterval)delay;使用NSTimer的一些函数 +
2017-03-26 11:43:22
344
1
原创 关于一个时间间隔bug的来源
需求,客户端互动添加3秒发言限制,用户本次方言后3秒之内发言提示:发言太快,请慢慢来。1.第一次想法:在每一次发言成功的时候在本地存储当前发言的时间,在下次发言的时候拿两次的时间对比,小于3秒 提示发言太快,请慢慢来。leader让使用项目中已经封装好的mach_absolute_time()来计算每次时间间隔,这个效率比直接使用Data高mach_absolute_time()代码:
2017-02-14 16:51:17
643
转载 对象回收时Weak指针自动被置为nil的实现原理
我们都知道Weak指针不会增加所引用对象的计数,并在引用对象被回收的时候自动被置为nil。通常用于解决循环引用问题。那么,自动被置为nil内部是如何实现的呢?内部实现 —— Weak表Runtime维护了一个Weak表,用于存储指向某个对象的所有Weak指针。Weak表其实是一个哈希表,Key是所指对象的地址,Value是Weak指针的地址(这个地址的值是所指对象的地址)的数组。
2016-10-09 14:16:13
2787
原创 Xcode更新后执行 git clone命令出错的问题
今天执行 git clone 命令的时候出错xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist, use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcod
2016-09-27 21:47:49
1329
原创 策略设计模式
刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子的。先说这个场景中的要素:三个妙计,一个锦囊,一个赵云,妙计是小亮同志给的,妙计是放置在锦囊里,俗称就是锦囊妙计嘛,那赵云就是一个干活的人,从锦囊中取出妙计,执行,然后获胜 三个锦囊妙计是同一个东西,需要写
2016-09-25 23:07:27
337
原创 ReactiveCocoa操作方法(过滤,秩序,时间,重复)
ReactiveCocoa操作方法过滤filter:过滤信号,可以使用它获取满足调价的信号 //每次信号发出都会先执行过滤条件判断 [[self.textfield1.rac_textSignal filter:^BOOL(NSString *value) { // 当条件判断等于YES的时候才会调用订阅的block
2016-05-29 16:51:07
5621
原创 ReactiveCocoa操作方法(映射,组合)
1.ReactiveCocoa操作方法之映射(flattenMap,Map) flattenMap,Map:用于把原信号中的内容映射成新的内容 flattenMap的作用:把原信号的内容映射成一个新的信号,信号可以是任意的类型 flattenMap使用步骤: 1.传入一个block,block类型是返回值RACStream,参数value2.参数value就是源信号的
2016-05-18 22:48:58
2233
原创 ReactiveCocoa核心方法bind(绑定)
ReactiveCocoa操作 所有的信号(RACSignal)都可以进行操作处理,因为所有的操作方法都定义在RACStream.h中,而RACSignal继承RACStream。ReactiveCocoa操作思想 运用的是(钩子)HooK思想,Hook是一种用于改变API执行结果的技术。 Hook用处:截获API调用的技术。 Hook原理:
2016-05-17 17:45:39
2802
原创 ReactiveCocoa基础和一些常见类介绍
一 导入ReactiveCocoa框架可以使用CocoaPods(用于管理第三方框架的插件)帮助我们导入podfile如果只描述pod 'ReactiveCocoa', '~> 4.0.2-alpha-1',会导入不成功 因为用到了swift的一些东西需要在podfile加上use_frameworks,重新pod install 才能导入成功Rea
2016-05-16 17:02:40
2424
原创 iOS9新特性,泛型
泛型:限制类型开发中使用场景: 1.限制集合中的类型,只能检测方法的调用,因为声明的泛型只能存在方法中 2.当一个类在声明的时候,某个对象的属性不确定,只有创建对象的时候才能确定,就可以使用泛型。 定义泛型 书写格式:放在类型的后面,表示限制这个类型 // 定义泛型:确定类型@property (nonatomic, strong) NS
2016-05-06 11:24:49
5040
原创 iOS9的一些新的关键字
nullable作用:表示可以为空// nullable书写规范: // 方式一: @property (nonatomic, strong, nullable) NSString *name; // 方式二: @property (nonatomic, strong) NSString *_Nullable name; // 方式三:
2016-05-03 23:17:22
541
原创 苹果开发证书导出P12的问题
昨天测试推送,极光推送需要上传开发证书和生产证书,极光只接受p12文件格式的证书,使用开发者账号生成证书第一步是使用:钥匙串-》证书助理-》从证书颁发机构请求证书我直接将证书放在磁盘上,并且常用名称没有填写,,最后生成的cer证书 导入到钥匙串中是这个样子的:一直导出p12文件不能导出在第一步的时候常用名称是必须要填写的,可以在钥匙串访问者找到刚刚填写的专用秘钥
2016-03-17 09:33:30
2453
原创 ARC下OC对象使用assign和使用weak的区别
面试总会被问到这个问题,但是自己一直没有真正的测试过。在ARC下使用wek 对象被释放后,指向对象的指针就会变成空指针,后面在调用相关的对象方法不会出现异常@interface ViewController () @property(weak,nonatomic)Persion *p;@property(weak,nonatomic)BOOK *b;@end@imple
2016-03-10 09:21:10
1987
原创 iOS内存管理基础
一,内存管理是什么?移动设备的内存极其有限,每个app 所能占用的内存是有限制的当app所占用的内存较多的时候系统会发出内存警告,这时候就需要在回收一些不需要在使用的内存空间,比如回收一些不需要使用的对象,和变量等管理范围:任何继承了NSObject的对象,其他基本数据类型(int,char,float,dauble,struct,enum等)无效二,对象的基本结构:
2016-03-04 10:23:35
393
原创 Objective-C 和 Core Foundation 对象相互转换内存管理
iOS允许Objective-C 和 Core Foundation 对象之间可以轻松的转换,拿 NSString 和 CFStringRef 来说,直接转换豪无压力CFStringRef aCFString = (CFStringRef)aNSString; NSString *aNSString = (NSString *)aCFString; 针对内存管理问题,ARC
2016-02-29 22:09:52
381
原创 iOS 使用AudioRecorder录音后在使用AVPlayer播放不了声音的问题
说说今天踩的一个坑叨叨项目有个语音频道和音乐频道,语音频道使用AudioRecorder录音之后使用AFSoundManager播放音乐,后来增加了音乐频道之后 录音的时候我将音乐停止后 返回到语音频道内容页 点击音乐播放条上的播放按钮,显示在播放状态,但是没有声音了,检查了代码一遍又一遍,没有发现任何问题无意中发现录完音后按手机的音量调节按钮没有任何反应,于是思考是
2016-02-23 15:39:39
3880
原创 OC中的点语法,成员变量,@property和@synthesize:id类型,构造函数
Xcode特有的注释 #pragma mark - 年龄的geter和seter方法 快速寻找到对应的代码一.点语法:1. 利用点语法替换set方法和get方法 方法调用: Person *p = [Person new]; p.age=10; [p setAge:
2016-02-21 10:04:37
421
原创 面向对象三大特性
一:封装set方法:1.作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应的过滤2.命名规范:方法名必须以set开头set后面跟上成员变量的名称,成员变量的首字母必须大写返回值一定是void一定要接收一个参数,而且参数类型跟成员变量类型一致形参的名称不能跟成员变量名称一样get方法:1.作用:返回对象内部的成员变量2.命名规范:一定
2016-02-21 09:57:30
359
原创 OC的类和对象
1.类的设计类名:(1)命名规范:有意义,驼峰标识,首字母大写 例子: #import //1.类的声明。行为//: NSObject目的是让Car这个类具备创建对象的能力//相当于java中的继承Object@interface Car : NSObject{//用来声明对象的属性(实例变量、成员变
2016-02-21 09:53:13
355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人