摘要:
1 - (NSString *)getPinYinFrom:(NSString *)chinese 2 { 3 CFMutableStringRef string = CFStringCreateMutableCopy(NULL, 0, (__bridge CFMutableStringRef)[NSMutableString stringWithString:chinese]); 4 CFStringTransform(string, NULL, kCFStringTransformMandarinLatin, NO); 5 CFStringTransform(st... 阅读全文
摘要:
GCD里就有三种queue(分派队列)来处理.1. Main queue:(主队列) 顾名思义,运行在主线程,由dispatch_get_main_queue获得.和ui相关的就要使用Main Queue.dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 耗时的操作 dispatch_async(dispatch_get_main_queue(), ^{ // 更新界面 });});2.Serial quque(private dispatch queue,其中dispatc. 阅读全文
摘要:
这篇文章想跟大家分享的主旨是iOS捕获用户事件的各种情况,以及内部封装的一些特殊事件。我们先从UIButton谈起,UIButton大家使用的太多了,他特殊的地方就在于其内置的普通Default/高亮Highlighted/选择Selected/可用Enable的几个状态(UIControlState)。其次就是SDK内部已经为我们封装了以下用户事件:最常用的莫过于Touch Up Inside这个事件了,他代表: 用户在按钮区域内按下,并且也在按钮区域内松开。关键点:按下并且松开 才能触发此方法,也就是正确的操作 按下一次,松开一次只会触发一次此事件。与之不同的Touch Drag Insi 阅读全文
摘要:
1.简单介绍下你对swizzling方法的了解,一般你什么时候使用.2.有三个对象 A,B,C..:A retain B, B retain C, C retain B..当 A release B 的时候,说明一下发生了什么.3.什么情况你会向 nil 调用一个方法?4.用两个不同的原因说明为什么不要用retainCount.5.你是如何追踪和修复内存泄露的.6.简单说明下autorelease pool 在 runtime 中是如何工作的.7.何时用property 申明.atomic 和nonatomic的区别是什么.8.如何用 C 实现一个 string 的 快速逆序 .9.哪个遍历起 阅读全文
摘要:
https://github.com/romaonthego/RESideMenu 阅读全文
摘要:
我们都知道不管网页还是移动应用,响应速度都是最重要的体验指标之一,并且移动应用的网络环境不稳定,速度的体验显得尤为重要。其实速度优化不仅是程序员的事,设计,也能够让APP变得更快。1.后台执行这是一条很通用,也容易理解的方法。用户不会愿意盯着进度条傻傻地等待,除了“取消”没有其他选择。在系统处理一些网络任务的时候,完全可以允许用户做一些其他的事情。各大平台的发微博,都采用了后台执行。云阅读的离线下载也采用后台执行。而微博的看长图(或视频),是个反例。网络不给力时,要么等待1分钟让图加载完,要不就只好放弃看图。为什么不能让图加载的同时,用户可以看其他微博呢?2.在载入前显示内容客户端与web的一 阅读全文
摘要:
NSPredicate用于查询和过滤在SQL中作为查询条件通常用WHERE,但在COREDATA中作为查询条件就可以用到NSPredicate.NSPredicate 不单可以和COREDATA中的FetchRequest 配合使用。也可以与NSArray配合使用。NSPredicate 中支持的关键词和条件符:1、>,=,= 10000"];2、字符串操作(包含):BEGINSWITH、ENDSWITH、CONTAINS如:@"employee.name BEGINSWITH[cd] '李'" //姓李的员工 @"employee 阅读全文
摘要:
Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。谓词表示计算真值或假值的函数。 NSPredicate *predicate; predicate=[NSPredicatepredicateWithFormat:@"name=='Herbie'"];//用predicateWithFormat创建一个谓词,name作为键路径 BOOL match=[predicateevaluateWithObject:car];//car作为接收对象,evalua 阅读全文
摘要:
1.去重NSArray * uniqueVarValueArray= [origArray valueForKeyPath:@"@distinctUnionOfObjects.VarKey"];2.判断Array中是否包含某一规则的对象,并返回一个数组:NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", regex];并调用:- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)p 阅读全文
摘要:
前言本人今年主要在负责猿题库iOS客户端的开发,本文旨在通过分享猿题库iOS客户端开发过程中的技术细节,达到总结和交流的目的。这是本技术分享系列文章的第三篇。本文涉及的技术细节是:基于CoreText的排版引擎。CoreText概述因为猿题库的做题和解析界面需要复杂的排版,所以我们基于CoreText实现了自己的富文本排版引擎。我们的排版引擎对公式、图片和链接有着良好支持,并且支持各种字体效果混排。对于内容中的图片,支持点击查看大图功能,对于内容中的链接,支持点击操作。下图是我们应用的一个截图,可以看到公式,图片与文字混排良好。对于富文本排版,除了可以用CoreText实现外,还可以用UIWe 阅读全文