03 2020 档案
摘要:DBL_EPSILON和 FLT_EPSILON主要用于单精度和双精度的比较当中 我们在对小数比较的时候,经常会出现如下情况: double a = 0.5; if (a == 0.5) //正确 x++; double b = sin(M_PI / 6.0); if (b == 0.5) //错误
阅读全文
摘要:__bridge_retained(可以使要转换的变量也持有所赋值的对象) void *p=0; { id obj=[[NSObject alloc] init]; p=(__bridge_retained void*)obj; } NSLog(@"class=%@",[(__bridge id)p
阅读全文
摘要:众所周知,我们在使用NSTimer或者CADisplayLink的时候,经常会导致引用它们的类不能正常释放,那是因为引用它们的类与它们之间产生了循环引用。看以下代码: self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:se
阅读全文
摘要:__attribute__ 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 其位置约束为: 放于声明的尾部“;” 之前 __attribute__ 书写特征为: __attribute__ 前后都
阅读全文
摘要:ReactiveCocoa可以給一个方法的调用添加绑定,或者说是观察者。 rac_signalForSelector:fromProtocol:(绑定协议的方法) rac_signalForSelector:(绑定类的方法) 原理: 在当前类中设置关联属性,value:RACSubject 将传入s
阅读全文