06 2013 档案

摘要:NSTimer与NSRunLoop的关系分析发表于2013 年 6 月 27 日由bluev |6 次浏览最近关于NSTimer和NSRunLoop的关系,做了一个小试验。代码地址:https://github.com/TianLibin/timerRunLoopTest.git代码运行效果如下图所示:本示例演示了四个定时器的效果以及界面操作对它们的影响。前两个定时器,是在子线程中启动的:- (void)subThread1{ @autoreleasepool { self.subThreadTimer1 = [NSTimer scheduledTimerWithTimeI... 阅读全文
posted @ 2013-06-28 16:28 yingkong1987 阅读(610) 评论(0) 推荐(0)
摘要:一、HomeBrew相关:先对HomeBrew做一个简单的介绍吧,之前了解的也不多。主要就是用于安装Unix的工具包。注意:HomeBrew依赖于Xcode的 Command Line Tool.官方的链接:http://mxcl.github.io/homebrew/Homebrew作为OS X上强大的包管理器,为系统软件提供了非常方便的安装方式,独特式的解决了包的依赖问题,并不再需要烦人的sudo,一键式编译,无参数困扰,真的,你值得拥有。安装Homebrew依赖于XCode,首先需要安装,lion后XCode也是免费的了,直接到App store下载。同时Homebrew也依赖ruby, 阅读全文
posted @ 2013-06-27 22:27 yingkong1987 阅读(382) 评论(0) 推荐(0)
摘要:方法一:1.xcode有自带的symbolicatecrash,可以将.crash文件中的16进制地址转换成可读的函数地址。symbolicatecrash位于:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash(Xcode4.5)可以将symbolicatecrash拷贝到便于操作的目录。如:将其拷贝到Deskto 阅读全文
posted @ 2013-06-26 23:27 yingkong1987 阅读(279) 评论(2) 推荐(0)
摘要:注意:crash_log一定要和打包时的archive对应上;方法1)在Orgnizer里找到某一个archive,即:/Users/handywang/Library/Developer/Xcode/Archives/2012-04-20/sohunews\ 4-20-12\ 3.07\ PM.xcarchive找到/Users/handywang/Library/Developer/Xcode/Archives/2012-04-20/sohunews\ 4-20-12\ 3.07\ PM.xcarchive/dSYMs/sohunews.app.dSYM/Contents/Resource 阅读全文
posted @ 2013-06-26 23:21 yingkong1987 阅读(1032) 评论(0) 推荐(0)
摘要:bundle字段这些字段名都是XML中的名称,在xcode的属性编辑器中,名字并不相同bundle目录中的属性列表详细描述了有关该bundle的信息。Finder和一些系统API在一些情况下会使用这些信息。bundle支持下列字段类型:Core Foundation字段–描述了bundle的综合属性Cocoa特定的字段–描述了和Cocoa有关的bundle的属性Finder特定的字段–描述了和Finder与文件系统有关的信息启动服务字段–描述了和启动服务有关的信息标准Bundle字段Mac OS X 为描述bundle的信息提供了一组核心字段。集成开发环境会赋予这些字段缺省值。表A-1列出了这 阅读全文
posted @ 2013-06-26 18:04 yingkong1987 阅读(564) 评论(0) 推荐(0)
摘要:在iOS中下面三个控件,自身就有复制-粘贴的功能:1、UITextView2、UITextField3、UIWebViewUIKit framework提供了几个类和协议方便我们在自己的应用程序中实现剪贴板的功能。1、UIPasteboard:我们可以向其中写入数据,也可以读取数据2、UIMenuController:显示一个快捷菜单,用来展示复制、剪贴、粘贴等选择的项。3、UIResponder中的 canPerformAction:withSender:用于控制哪些命令显示在快捷菜单中。4、当快捷菜单上的命令点击的时候,UIResponderStandardEditActions将会被调用 阅读全文
posted @ 2013-06-25 12:51 yingkong1987 阅读(1791) 评论(0) 推荐(0)
摘要:将所有的UITableView保存为图片,因为UITableView只能保存显示当前,所以,就单个保存后,合并为一张图片代码如下:01-(IBAction)savePic:(id)sender02 03{04 05 //支持retian高分辨率06 07 UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0.0);08 09 float curH = mTableView.contentSize.height;10 11 UIImageView *allView = [[UIImageVi... 阅读全文
posted @ 2013-06-25 12:27 yingkong1987 阅读(374) 评论(0) 推荐(0)
摘要:#!/bin/shecho"随意删除@2x图片可能会引起错误因为ios工程会更加前缀和分辨率自己找到@2x的图片所以删除@2x图片时要慎重"read-n1 -p"【Y】查阅如何确认@2x是使用【N】直接进行图片检索"answercase$answerin"Y"|"y")open -a Safari"http://www.cnblogs.com/yingkong1987/archive/2013/06/25/3154344.html"echo -n"按任意键开始程序";read 阅读全文
posted @ 2013-06-25 12:23 yingkong1987 阅读(254) 评论(0) 推荐(0)
摘要:有部分图片是名称一样存放在模块的image文件下与公共的image 文件重复有的是图片名称一样 文件不一样xib 中引用的到请用以下命令逐一查看排除grep -i -r --include=*.xib --include=*.m "line" ./ | grep "line.png" 阅读全文
posted @ 2013-06-25 11:19 yingkong1987 阅读(525) 评论(0) 推荐(0)
摘要:Remote Virtual Interface在使用Mac抓取iPhone数据包中介绍了两种方式在Mac电脑上抓取iPhone上的数据包,一是使用Mac的网络共享功能将Mac的网络通过WiFi共享给iPhone连接,一是使用代理软件在Mac上建立HTTP代理服务器;这两种方式都是将iPhone的网络流量导入到Mac电脑中,通过Mac连接互联网,这就要求Mac本身是联网的,对于网络共享的方式还要求Mac本身的网络不能使用WiFi,而且在iPhone上全是使用的WiFi连接,不能抓取2G/3G网络的包。在iOS5中新引入了“远程虚拟接口(remote virtual interface ,RVI 阅读全文
posted @ 2013-06-24 23:27 yingkong1987 阅读(2627) 评论(0) 推荐(1)
摘要:如果你是一名开发者,还在为偶尔改一个坐标或者颜色值 就要重新build 好久,然后如果层次深 还要一步步进去看效果么?下面 为大家介绍一个很好的开源库 DYCI 他的github地址,首先下载到本地1.然后 去执行 解压后 目测层次 如下2.进去Install 目录下 我们准备安装 运行其shell 脚本因为我之前安装成功,所以会有 skipped 字样,你如果全新安装 便只有成功 字样3.检查安装完后 xcode 是否有此快捷键,如果没有,重启xcode,如果在没有,在关闭xcode情况下 重复2操作 ,(本人安装过程中出现一直没出现插件安装成功,重复2-3次才成功,耐心试几次,总可以的)4 阅读全文
posted @ 2013-06-24 23:26 yingkong1987 阅读(326) 评论(0) 推荐(0)
摘要:如上图,OS X在使用一段时间后,有些软件就会重复注册打开方式,对于有洁癖的人,这是难以接受的事。 不过有个命令可以很简单的把重复项给去掉。/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user && killallFinder多谢guolin同学更正:OS X 10.8以后是这个/ 阅读全文
posted @ 2013-06-24 11:44 yingkong1987 阅读(232) 评论(0) 推荐(0)
摘要:Command /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ibtool failed with exit code 255或者XIB无法打开...用右键open source code 打开..修改内容.....搞死人了...... 阅读全文
posted @ 2013-06-23 02:03 yingkong1987 阅读(582) 评论(0) 推荐(0)
摘要:对于使用代码来写UI的同志,使用DCIntrospect来查看元素信息调整布局,再也不用凭眼睛来估了,先来看看截图DCIntrospect是github上的开源项目:下载源码大概介绍下用法:DCIntrospect拖到项目中,添加 QuartzCore framework在方法didFinishLaunchingWithOptions中添加下面的代码:// always call after makeKeyAndDisplay.#if TARGET_IPHONE_SIMULATOR[[DCIntrospect sharedIntrospector] start];#endif只支持在模拟器上跑 阅读全文
posted @ 2013-06-22 08:41 yingkong1987 阅读(1088) 评论(1) 推荐(0)
摘要:概述我将分四步来带大家研究研究程序的并发计算。第一步是基本的串行程序,然后使用GCD把它并行计算化。如果你想顺着步骤来尝试这些程序的话,可以下载源码。注意,别运行imagegcd2.m,这是个反面教材。。 imagegcd.zip (8.4 KB, 87 次)原始程序我们的程序只是简单地遍历~/Pictures然后生成缩略图。这个程序是个命令行程序,没有图形界面(尽管是使用Cocoa开发库的),主函数如下: int main(int argc, char **argv) { NSAutoreleasePool *outerPool = [NSAutoreleasePool new]; NSAp 阅读全文
posted @ 2013-06-21 18:36 yingkong1987 阅读(463) 评论(0) 推荐(0)
摘要:其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入代码如下:@implementation DWAppDelegate{ dispatch_queue_t _serialQueue; UINavigationController *_navController;}- (dispatch_queue_t)serialQueue{ if (!_serialQueue) { _serialQueue = dispatch_queue_create("serialQueue", 阅读全文
posted @ 2013-06-21 18:35 yingkong1987 阅读(216) 评论(0) 推荐(0)
摘要:何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型?下面是GCD 10.6.0版本支持的事件:Mach port send right state changes.Mach port receive right state changes.External process state change.File descriptor ready for read.File descriptor ready f 阅读全文
posted @ 2013-06-21 18:20 yingkong1987 阅读(231) 评论(0) 推荐(0)
摘要:概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)。有两种途径来通过GCD“榨取”多核心系统的性能:将单一任务或者一组相关任务并发至全局队列中运算;将多个不相关的任务或者关联不紧密的任务并发至用户队列中运算;全局队列设想下面的循环: for(id obj i 阅读全文
posted @ 2013-06-21 18:18 yingkong1987 阅读(195) 评论(0) 推荐(0)
摘要:什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GCD还提供高度集成的事件控制系统。可以设置句柄来响应文件描述符、mach ports(Mach port 用于 OS X上的进程间通讯)、进程、计时器、信号、用户生成事件。这些句柄通过GCD来并发执行。GCD的API很 阅读全文
posted @ 2013-06-21 18:16 yingkong1987 阅读(243) 评论(0) 推荐(0)
摘要:本文方法参考了:官方文档。见A function that draw aPDFpage的代码部分:void MyDisplayPDFPage (CGContextRef myContext, size_t pageNumber, const char *filename){ CGPDFDocumentRef document; CGPDFPageRef page; CGRect box; document = MyGetPDFDocumentRef (filename);// 1 page... 阅读全文
posted @ 2013-06-21 16:21 yingkong1987 阅读(592) 评论(0) 推荐(0)
摘要:IOS中可以使用"mach_absolute_time"获取到CPU的tickcount的计数值,可以通过"mach_timebase_info"函数获取到纳秒级的精确度 代码如下: uint64t start = 0; uint64t end = 0; uint64_t elapsed = 0;mach_timebase_info_t timeBaseInfo = mach_timebase_info(info); start = mach_absolute_time();// dosomething// .....end = mach_absolut 阅读全文
posted @ 2013-06-16 12:29 yingkong1987 阅读(721) 评论(0) 推荐(0)
摘要:一、xcode4中的环境变量$(BUILT_PRODUCTS_DIR)build成功后的,最终产品路径--可以在Build Settings参数的Per-configuration Build Products Path项里设置$(TARGET_NAME)目标工程名称$(SRCROOT)工程文件(比如Nuno.xcodeproj)的路径$(CURRENT_PROJECT_VERSION)当前工程版本号其他:当编译静态库,设备选模拟器(iPhone 5.0 Simulator),未设置任何Build Settings参数时,默认的基础路径:/Users/xxx/Library/Developer 阅读全文
posted @ 2013-06-09 14:40 yingkong1987 阅读(312) 评论(0) 推荐(0)
摘要:1.NSTimeInterval: 时间戳,以double为单位2.系统返回的时间都是格林尼治时间,要得到北京时间需要转化NSDate类:@interface NSDate (NSDateCreation)中方法:创建或初始化NSDate值NSDate返回日期@interface NSDate (NSExtendedDate): NSDate的扩张方法方法一:日前之间的前后比较方法二:得到距离某一日起的时间间隔(时间戳)方法三:得到在当前实例中保存的时间为基准, 过了sec的日期方法四:将时间表示字符串:description 其实这个方法写不写一样 系统会自动的参考:冷雨之家博客对该类方法. 阅读全文
posted @ 2013-06-05 19:06 yingkong1987 阅读(978) 评论(0) 推荐(0)