Asingers Blog

Life is struggle

iOS 一句话调用清除缓存

学习笔记

#import <Foundation/Foundation.h> typedef void(^cleanCacheBlock)(); @interface YJCleanCache : NSObject /** * 清理缓存 */ +(void)cleanCache:(cleanCacheBlock)block; /** * 整个缓存目录的大小 */ +(flo...

iOS UITextField 常规处理

学习笔记

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if ([textField.text rangeOfString:@"."].location == NSNotFound) ...

iOS多线程到底不安全在哪里?

线程安全

iOS多线程安全的概念在很多地方都会遇到,为什么不安全,不安全又该怎么去定义,其实是个值得深究的话题。 共享状态,多线程共同访问某个对象的property,在iOS编程里是很普遍的使用场景,我们就从Property的多线程安全说起。 Property 当我们讨论property多线程安全的时候,很多人都知道给property加上atomic attribute之后,可以一定程度的保障多...

气泡图片

给ImageView加Layer

准备一张这种气泡效果的背景图,然后将这个气泡图做成一个layer实例,并且通过contentCenter或者contentRect拉伸至我们需要展示的UIImageView大小 将做好的layer实例赋给UIImageView 将imageview赋上图片 CGRect frame = CGRectMake(20, 100, 300, 300); UIImageView *ima...

使用CIFilter 生成二维码

学习笔记

首先是二维码的生成,使用CIFilter很简单,直接传入生成二维码的字符串即可: - (CIImage *)createQRForString:(NSString *)qrString { NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding]; // 创建filter CIFilter *qrFilte...

iOS RunLoop

用实例理解 RunLoop

首先来看看定义 什么是RunLoop? 提到RunLoop,我们一般都会提到线程,这是为什么呢?先来看下官方对RunLoop的定义:RunLoop系统中和线程相关的基础架构的组成部分(和线程相关),一个RunLoop是一个事件处理环,系统利用这个事件处理环来安排事务,协调输入的各种事件。 RunLoop的目的是让你的线程在有工作的时候忙碌,没有工作的时候休眠(和线程相关)。可能这样说你还不是...