随笔分类 -  iOS

1 2 3 4 5 ··· 12 下一页
关于IOS的相关
摘要:原文:http://zhuanlan.zhihu.com/iOSRe/19646016Reveal查看任意app的高级技巧hangcom·12 小时前Reveal是一个很强大的UI分析工具,与其他几个功能相近的工具(比如PonyDebugger)相比,其最大的特点就是非常直观,用来查看app的UI布局非常方便。其常规用法是将framework集成至Xcode工程中,可参见Reveal的官网Reveal App,但我们这次讲述的却是非常规用法。在12/21的#阿里技术嘉年华#上,我给听众展示了使用Reveal查看任意app的效果,估计是当时所展示的工具中最亮眼的一个。既然如此,我就提前 阅读全文
posted @ 2013-12-30 22:11 yingkong1987 阅读(896) 评论(0) 推荐(0) 编辑
摘要:原文:http://noark9.github.io/2013/12/28/cocoa-drawing-guide-study-part-1/简介cocoa drawing由AppKit提供并且也兼容其他的模式:Quartz,OpenGL,Core Image,Core Video,Quartz Composer,PDF Kit,QuickTime基于Quartz,所以AppKit提供了Quartz相关的功能基于path的绘图创建,加载,显示图片布局和显示文本创建,显示PDF半透明阴影色彩管理变形打印抗锯齿渲染OpenGLcocoa drawin基于Quartz可以利用硬件资源进行渲染,并且使 阅读全文
posted @ 2013-12-29 00:50 yingkong1987 阅读(1360) 评论(0) 推荐(0) 编辑
摘要:iOS.Book.Effective Objective-C 2.01. 中文翻译版 (更新中)https://github.com/HagerHu/effective-objective-c-2.02. Book的主页 和 代码主页http://www.effectiveobjectivec.comhttps://github.com/effectiveobjc/codehttp://www.galloway.me.uk/2013/05/effective-objective-c-2-dot-0/3. 国内开发者的学习笔记http://blog.csdn.net/alfred_kwong/a 阅读全文
posted @ 2013-12-25 17:13 yingkong1987 阅读(404) 评论(2) 推荐(0) 编辑
摘要:转自:http://ansonzhao.com/blog/2013/11/28/thread-safe-class-design/翻译自Thread-Safe Class Design线程安全Apple的框架首先让我们来看一下Apple的框架。一般情况下,除非提前声明,否则大多数类默认不是线程安全的。一些是我们所期望的,但是另一些却会相当有趣。其中甚至有经验的iOS/Mac开发人员常会犯的错误是在后台线程中访问部分UIKit/AppKit。最容易犯的错误是在后台线程中对property赋值,比如图片,因为他们的内容是在后台从网络上获取的。Apple的代码是性能优化过的,如果你从不同线程去改动p 阅读全文
posted @ 2013-12-13 00:23 yingkong1987 阅读(1808) 评论(0) 推荐(1) 编辑
摘要:做iOS开发的时候,常常会遇到crash,需要分析call stack的时候。有时候App在别人的设备崩溃,把crash report在自己的机器上打开,Xcode没有自动的进行符号化。这时候就需要自己去把地址解析成符号。大前提是,必须有相同版本App对应的.dSYM文件。这时候打开Terminal,进入到build/Debug-iphoneos使用命令:$atos -arch arm7 -o XXX.app/XXX 0xabcdefXXX是你的App名字,用需要解析的地址替换上面的0xabcdefarm7是编译App时所用的Architecture,也可能是arm6,如果在simulator 阅读全文
posted @ 2013-12-12 14:34 yingkong1987 阅读(907) 评论(0) 推荐(0) 编辑
摘要:本文主要探讨一些常用多任务的最佳实践。包括Core Data的多线程访问,UI的并行绘制,异步网络请求以及一些在运行态内存吃紧的情况下处理大文件的方案等。 其实编写异步处理的程序有很多坑!所以,本文所涉及的样例都尽量采用简洁直观的处理方式。因为越是简单的逻辑结构,越能彰显代码的脉络清晰,越易于理解。打个比方,如果在程序中使用多层次的嵌套回调,基本上这个它会有很大的重构空间。Operation Queues vs. Grand Central Dispatch目前,在iOS和OS X 中,SDK主要提供了两类多任务处理的API:operation queues和Grand Central Di. 阅读全文
posted @ 2013-12-11 11:46 yingkong1987 阅读(429) 评论(0) 推荐(0) 编辑
摘要:http://blog.xcodev.com/blog/categories/ioskai-fa/ 阅读全文
posted @ 2013-12-10 12:57 yingkong1987 阅读(349) 评论(0) 推荐(0) 编辑
摘要:NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor],UITextAttributeTextColor, ... 阅读全文
posted @ 2013-12-09 20:09 yingkong1987 阅读(829) 评论(0) 推荐(0) 编辑
摘要:在代码中使用Autolayout时,大家都会使用NSDictionaryOfVariableBindings这个宏,这个宏可以生成一个变量名到变量值映射的Dictionary。比如NSDictionaryOfVariableBindings(button1, button2)将会生成一个{ @"button1" = button1, @"button2 = button2 }的Dictionary。它是怎么做到的呢?我们来看看这个宏的定义:#define NSDictionaryOfVariableBindings(...) _NSDictionaryOfVari 阅读全文
posted @ 2013-12-08 02:23 yingkong1987 阅读(582) 评论(0) 推荐(0) 编辑
摘要:NSTimeZone**时区是一个地理名字,是为了克服各个地区或国家之间在使用时间上的混乱。基本概念:GMT 0:00 格林威治标准时间; UTC +00:00 校准的全球时间; CCD +08:00 中国标准时间 [来自百度百科]夏时制,英文"DaylightSavingTime"。夏季时将时区内的时间提前(一般为1小时),以节省资源,提高效率。使用夏时制期间,当前时区相对于GMT的时间偏移量会发生变化。在某些应用中可能需要考虑。任何时区都以GMT为基准,即,任何NSTimeZone对象所代表的时区都是相对于GMT的,这里的相对性是NSTimeZone中最重要的属性,我们 阅读全文
posted @ 2013-11-27 11:52 yingkong1987 阅读(1149) 评论(0) 推荐(0) 编辑
摘要: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... 阅读全文
posted @ 2013-11-22 18:18 yingkong1987 阅读(1147) 评论(0) 推荐(0) 编辑
摘要: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. 阅读全文
posted @ 2013-11-12 22:34 yingkong1987 阅读(935) 评论(1) 推荐(0) 编辑
摘要:这篇文章想跟大家分享的主旨是iOS捕获用户事件的各种情况,以及内部封装的一些特殊事件。我们先从UIButton谈起,UIButton大家使用的太多了,他特殊的地方就在于其内置的普通Default/高亮Highlighted/选择Selected/可用Enable的几个状态(UIControlState)。其次就是SDK内部已经为我们封装了以下用户事件:最常用的莫过于Touch Up Inside这个事件了,他代表: 用户在按钮区域内按下,并且也在按钮区域内松开。关键点:按下并且松开 才能触发此方法,也就是正确的操作 按下一次,松开一次只会触发一次此事件。与之不同的Touch Drag Insi 阅读全文
posted @ 2013-11-10 14:07 yingkong1987 阅读(639) 评论(0) 推荐(0) 编辑
摘要: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.哪个遍历起 阅读全文
posted @ 2013-11-07 23:59 yingkong1987 阅读(316) 评论(0) 推荐(0) 编辑
摘要:https://github.com/romaonthego/RESideMenu 阅读全文
posted @ 2013-11-07 22:38 yingkong1987 阅读(189) 评论(0) 推荐(0) 编辑
摘要:我们都知道不管网页还是移动应用,响应速度都是最重要的体验指标之一,并且移动应用的网络环境不稳定,速度的体验显得尤为重要。其实速度优化不仅是程序员的事,设计,也能够让APP变得更快。1.后台执行这是一条很通用,也容易理解的方法。用户不会愿意盯着进度条傻傻地等待,除了“取消”没有其他选择。在系统处理一些网络任务的时候,完全可以允许用户做一些其他的事情。各大平台的发微博,都采用了后台执行。云阅读的离线下载也采用后台执行。而微博的看长图(或视频),是个反例。网络不给力时,要么等待1分钟让图加载完,要不就只好放弃看图。为什么不能让图加载的同时,用户可以看其他微博呢?2.在载入前显示内容客户端与web的一 阅读全文
posted @ 2013-11-07 19:26 yingkong1987 阅读(402) 评论(0) 推荐(0) 编辑
摘要:NSPredicate用于查询和过滤在SQL中作为查询条件通常用WHERE,但在COREDATA中作为查询条件就可以用到NSPredicate.NSPredicate 不单可以和COREDATA中的FetchRequest 配合使用。也可以与NSArray配合使用。NSPredicate 中支持的关键词和条件符:1、>,=,= 10000"];2、字符串操作(包含):BEGINSWITH、ENDSWITH、CONTAINS如:@"employee.name BEGINSWITH[cd] '李'" //姓李的员工 @"employee 阅读全文
posted @ 2013-11-01 02:10 yingkong1987 阅读(164) 评论(0) 推荐(0) 编辑
摘要:Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。谓词表示计算真值或假值的函数。 NSPredicate *predicate; predicate=[NSPredicatepredicateWithFormat:@"name=='Herbie'"];//用predicateWithFormat创建一个谓词,name作为键路径 BOOL match=[predicateevaluateWithObject:car];//car作为接收对象,evalua 阅读全文
posted @ 2013-10-30 17:08 yingkong1987 阅读(224) 评论(0) 推荐(0) 编辑
摘要:1.去重NSArray * uniqueVarValueArray= [origArray valueForKeyPath:@"@distinctUnionOfObjects.VarKey"];2.判断Array中是否包含某一规则的对象,并返回一个数组:NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", regex];并调用:- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)p 阅读全文
posted @ 2013-10-25 15:07 yingkong1987 阅读(1027) 评论(0) 推荐(0) 编辑
摘要:前言本人今年主要在负责猿题库iOS客户端的开发,本文旨在通过分享猿题库iOS客户端开发过程中的技术细节,达到总结和交流的目的。这是本技术分享系列文章的第三篇。本文涉及的技术细节是:基于CoreText的排版引擎。CoreText概述因为猿题库的做题和解析界面需要复杂的排版,所以我们基于CoreText实现了自己的富文本排版引擎。我们的排版引擎对公式、图片和链接有着良好支持,并且支持各种字体效果混排。对于内容中的图片,支持点击查看大图功能,对于内容中的链接,支持点击操作。下图是我们应用的一个截图,可以看到公式,图片与文字混排良好。对于富文本排版,除了可以用CoreText实现外,还可以用UIWe 阅读全文
posted @ 2013-10-23 21:53 yingkong1987 阅读(670) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 12 下一页