- 博客(171)
- 资源 (10)
- 收藏
- 关注

原创 Mach-O文件和Facebook的fishhook
1. 概述我们知道Windows下的文件都是PE文件,同样在OS X和iOS中可执行文件是Mach-o格式的。Mach-O通常有三部分组成:头部 (Header): Mach-O文件的架构 比如Mac的 PPC, PPC64, IA-32, x86-64,ios的arm系列.加载命令(Load commands): .原始段数据(Raw segment data):可以拥有多个段(se...
2020-01-17 08:57:29
793
原创 Objective-C runtime之load和initialize
概述在C语言中,main()是程序最早开始启动和初始化的地方。 在Objective-C中,application,documents,user interface都有自己初始化的地方,所以,在main()中只是简单的调用 NSApplicationMain。Objective-C中第一个初始化的地方是 +(void)load. 任何class都能有一个+(void)load。+load+...
2020-01-09 18:14:45
354
原创 谷歌protocol buffers编码及Objective-C实现源码分析
1. 简介本文会介绍protocol buffers的二进制wire format(binary wire format)。你并不是需要理解这些后才能在应用里使用protocol buffers,但是当你想知道不同的protocol buffers格式是如何影响编码后的消息体的体积时,这些知识会非常有用。一个简单的消息假设有一个非常简单的消息定义:syntax = "proto3";...
2019-12-30 18:35:51
792
1
原创 Mac下获取App Store安装包临时存放路径
在活动监视器中找到App Store下载服务进程打开活动监视器(Activity Monitor),找到名字为”storedownloadd”的进程选中”storedownloadd”的进程,点击第三个”打开的文件和端口”tab,就可以找到类似”/private/var/folders/l3/xxxxxxxxxxxxxxx/x/com.apple.appstore/497799835/xxxx
2015-10-27 16:41:11
12495
原创 Swift 语言概览
Swift 语言概览参考资料swift学习资料总结swift学习资源整理swift开源项目:使用swift实现常见加密算法Firefox客户端使用的HTTP网络框架使用swift实现的json解析库swift实现的iOS动画框架–SpringQuestionsXcode 6不能查看类的定义???* swift教程1. 常量和变量常量使用let关键字进行声明ps: 常量和变量的
2015-10-23 17:28:29
1640
原创 如何实现一个精准的Timer
如何实现一个精准的Timer在timer设计中,假如时间精确度大于500毫米,就可以认为是bug。我们知道,NSTimer的可以精确到50-100毫秒,假如需要更精确的timer,应该如何实现呢?参考资料:NSTimer你真的会用了吗Experiments with precise timing in iOSHigh Precision Timers in iOS
2014-09-18 21:24:53
6720
原创 谷歌和百度常见搜索技巧
经常使用谷歌,百度进行搜索,才发现还有很多比较基础的搜索技巧都不甚了解,抽空阅读了一下谷歌和百度的官方文档,整理总结了以下常见的搜索技巧。一、谷歌搜索技巧1、完全匹配,使用中文或者英文双引号2、几个关键字site,如果您希望在特定的网站或特定类型(.org 或 .edu)的网站中进行搜索,请在查询内容前加上 site:,例如:“site:edu”或“site:nyt
2013-11-14 10:19:43
3730
转载 iOS多线程下使用sqlite
sqlite多线程概述这几天研究了一下SQLite这个嵌入式数据库在多线程环境下的应用,感觉里面的学问还挺多,于是就在此分享一下。先说下初衷吧,实际上我经常看到有人抱怨SQLite不支持多线程。而在iOS开发时,为了不阻塞主线程,数据库访问必须移到子线程中。为了解决这个矛盾,很有必要对此一探究竟。关于这个问题,最权威的解答当然是SQLite官网上的“Is SQLite th
2013-05-18 11:36:16
3487
原创 iOS获取设备剩余存储空间代码片段
首先需要引入相关的头文件,引入头文件代码如下:#include #include 获取剩余存储空间函数如下:+ (NSString *) freeDiskSpaceInBytes{ struct statfs buf; long long freespace = -1; if(statfs("/var", &buf) >= 0){
2013-01-15 09:37:47
12643
转载 获取iphone的IP地址源码
转载自:http://blog.youkuaiyun.com/zougangx/article/details/6215595定义了几个方法,获取iphone的IP地址。IPAdress.h[cpp] view plaincopy#define MAXADDRS 32 extern char *if_names[MAX
2012-12-18 10:10:58
2731
原创 NSInvocation使用示例
一、概述在 iOS中可以直接调用 某个对象的消息 方式有2种第一种方式是使用NSObject类提供的performSelector系列方法还有一种方式就是使用NSInvocation进行动态运行时的消息分发,动态的执行方法,相信大家一定经常使用NSObject类提供的performSelector系列方法,在这里就不再对此进行描述了,今天主要是分享一下使用NSInvoc
2012-12-17 11:44:29
7293
原创 Objective-C @encode关键字
最近一段时间比较忙,抽空看了一下设计模式(主要是看两本书,《大话设计模式》和《Objective-C编程之道:iOS设计模式解析》 );研究了一下3D数学和opengl,开始学习cocos2D,感觉时间总是很零散,很不够用,所以很久都没有写blog了。闲话少扯,言归正传。昨天被一个同事问到,如果把一些数(int ,BOOL类型等)封装到NSNumber对象中,而这些NSNumber类型的数
2012-11-25 18:36:38
15409
转载 IOS人机界面指南-数据摘要
转载自:http://www.dashishe.com/?p=2011.状态栏高度:20/40px颜色:灰色(默认)、黑色、半透明黑色(α值为0.5的黑色)3种可选。 2.导航栏 a 包括导航控件和内容管理控件。b 边框样式按钮可以利用iPhone OS提供的预定义按钮。c 横屏比竖屏的导航条略窄(不要指定高度),颜
2012-10-10 08:33:12
2396
原创 国内移动互联网公司的产品开发流程是大致是怎样的?各角色之间是如何协调的?
国内移动互联网公司的产品开发流程是大致是怎样的?各角色之间是如何协调的?一般的项目都涉及哪些人员,每个角色的分工和产出是什么?答:产品、视觉设计师、交互设计师、研发、测试。产品当然是发掘需求、设计产品、产出需求设计。设计师当然是做设计了,长什么样子,流程应该是什么样的,颜色是什么。研发就是将需求设计变成产品的。测试就是保障质量。其中,移动互联
2012-10-09 16:20:06
3802
原创 MySQL删除/更新数据时报1175错误
今天删除mysql数据库中的一条记录的时候,一直不能删除,提示错误信息如下:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the optio
2012-09-04 14:35:06
24419
1
转载 XMPP协议简介[转载]
1. 简介XMPP来源于Jabber开源社区,基于XML,提供准实时的传递消息、在线状态和请求/响应服务。XMPP使用客户/服务模式,服务器之间能够相互连接,建立在面向连接的协议上,通常是TCP。下图概要描述了XMPP架构:以黑色线条连接的方框是XMPP的客户端和服务器,要注意的是XMPP客户端之间不能相互连接,这是一个严格的客户/服务器模型。客户端2和服务器1通过网关接入异构
2012-08-29 15:53:07
5536
转载 如何进入程序设计的领域 (转自蔡学镛老师的一篇文章)
工作已经一年多了,回想过去的一年,感慨颇多;迷茫过,沮丧过,悔恨过,不过很幸运的是没有放弃,下面转载一篇蔡学镛老师之前写过的一篇关于编程的文章,为前路指明方向,以此鞭笞自己。本文作者:蔡学镛 撰文日期:05/12/00 这一阵子,软件和网络相关产业相当兴盛,许多人对程序设计开始感兴趣,我收到好一些读者的来信,不少读者共同的问题是:如何进入程序设计的领域?所以我写了这篇文章,让
2012-08-29 13:12:51
3495
原创 XCODE调试技巧集锦
前记:编写代码过程中,出现错误、异常是不可避免的,这个时候,就体现了调试的重要性,下面就总结一下,平常我自己使用的一些调试技巧,以及汇总网络上其他网友使用的技巧。(ps以后有新的调试技巧,我也会一并更新)1、使用僵尸变量(NSZombieEnabled)具体使用及设置,可参考我的另一篇博文:http://blog.youkuaiyun.com/yhawaii/article/det
2012-08-28 10:24:39
4172
转载 Mac OS X的Stack功能
我个人很讨厌在Dock上放置程序的快捷方式。因为当Dock上的图标超过7个之后就很难一眼看全──Dock上过多的图标不仅起不到“快捷”的作用,反倒碍事。所以,基本上都是用Spotlight呼出程序(我选择这种方式的原因在于它可以让我的手不用开键盘就可以完成操作);而Dock上只留下两个必须留下的东西,一个是最左面的Finder,另外一个是在国内不得不使用的Vidalia(它最好在Dock上,让我随
2012-08-28 09:01:06
2879
原创 iOS中使用自定义字体
之前的好几个项目,客户都要求使用微软雅黑字体,可是iOS没有自带这个字体,肿么办 只能自己自定义字体了,下面是自定义字体的几个重要步骤:1、下载字体资源文件(.ttf或.otf格式的文件)比如说你要使用微软雅黑字体,就需要下载微软雅黑字体文件。需要注意的是,.otf格式的文件只能在iOS5之后才能使用,所以假如你的系统需要在iOS5.0之前的版本中使用的话,最好使用.ttf
2012-08-27 11:24:15
5151
原创 iOS开发网络篇之:ASIHTTPRequest杂记
设置user agent代码如下:[ASIHTTPRequest setDefaultUserAgentString:@"MyApp 1.0"];如果不设置user agent,ASIHTTPRequest会为你创建一个。例如(Mac OS程序):My Application 1.0 (Macintosh; Mac OS X 10.5.7; en_GB)你也可以为每个r
2012-08-27 08:36:16
12665
原创 iOS开发网络篇之:ASIHTTPRequest流量监控
相信做iOS开发的朋友,对ASIHTTPRequest库一定不会陌生,下面分享一下使用ASIHTTPRequest监控流量的心得,需要事先声明的是只有在WWAN(GPRS/Edge/3G)网络下,ASIHTTPRequest的流量监控才能起效,在WIFI网络下是不能生效的。从1.0.7版本开始,ASIHTTPRequest可以控制流量,使得所有request的流量不会超过用户定义的限制范围。这
2012-08-25 17:32:58
8593
转载 一个老程序员的总结
做技术已经有二十多年,每天忙忙碌碌,开始还对自己的职业生涯有些思考,时间一长,习惯了,再也没想过。前几天在办公楼上认识了一个朋友,他在某知名IT招聘网站做专业职业顾问,聊天的时候,他告诉我的这些话,让我顿时清醒了许多,现在我决定给自己这么多年的工作方式和思维模式做个改变,应该还不算晚。 不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国还仅仅的停留在把软件技术人才
2012-08-24 08:25:31
1272
1
转载 我们是一群和平年代充满浮躁与抱怨的程序员
和很多IT人沟通,发现表现出来更多的是浮躁与抱怨,所以有了本文,其实我们不论是coder,还是架构师或项目经理,都存在同样的心理,只是比较的对像及发展的路线不一样罢了。 现在是一个和平与发展的社会,大部份人不会为了吃饱而发愁,更多的是为了生活更好,为了工资、房子、车子,为了得到周围人的褒奖,受到周围人的影响,以至于不知道自己想做什么,常感觉前途不知在哪里。IT人是这样,国企的人也一样,我们
2012-08-20 08:28:40
2054
转载 再次写给我们这些浮躁的程序员
2010年初写过一篇博客(我们是一群和平年代充满浮躁与抱怨的程序员),一年过去了,社会好像更浮躁,也有网友问我这方面的问题,于是有了下面这篇文章,再次写给我们这些刚入行浮躁的程序员,如何成长,以下是列出了一些成长的心得,我们不必每条都去实践,但是优秀的程序员成长过程中总会实践里面的几条。 多做项目,多思考不要害怕做事,刚毕业的同学最缺的就是工作经验,乱七八糟的项目能让你很快就了解了一个
2012-08-20 08:25:52
1804
转载 XCode一个工程中添加多个Targets教程
转载自: http://www.cocoachina.com/bbs/read.php?tid-10884.html啥叫多Targets, 有啥用! 相信很多人都注意到XCode中, 有个Target的概念. 这在很多地方都有所体现, 比如打开一个工程后, 左侧的列表中有Targets一项, 而在工程界面的顶部菜单中, project里面也有多个涉及到Target的项
2012-08-16 14:03:28
5233
原创 Objective-C中trim的实现
在java中,有trim的系统实现(将字符串的首尾空格去掉),但在iOS开发中,却没有找到现成的trim方法的实现,只有自己实现该方法了,下面是trim方法的实现:NSString *string = @" spaces in front and at the end "; NSString *trimmedString = [string stringByTrimmingChara...
2012-08-16 09:29:08
6236
转载 为什么程序员不擅长估算时间
原文链接:Programmer Time Translation Cheatsheet -or- Why Programmers Are Bad at Estimating Times一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员的时间估算以后,先将它乘以π,然后转化下一个时间数量级后,才能得到真正的值。1天转化成3.14周。他过去因为程序员不擅长估算时间而吃尽了苦头。我创建
2012-08-07 16:22:15
1140
1
原创 iOS常见异常Exec_Bad_Access问题解决办法
在iOS开发中,经常遇到Exec_Bad_Access异常,导致程序奔溃问题,一般这个问题都是因为过早的release对象,然后又对该对象发送消息导致这个问题。可以通过在Xcode中设置NSZombieEnabled变量来获取一些详细信息。Xcode 4之前的做法是:1 在XCode界面中,双击Executables中的可执行文件,将会弹出一个设置对话框2 在Arguments选项中的
2012-07-26 15:44:45
6125
原创 iOS后台播放音乐
iOS4之后就支持后台播放音频了。只需下面两步就可以实现后台播放音频操作了:1、在Info.plist中,添加"Required background modes"键,其值设置如下图所示:2、添加AVFoundation框架,然后再添加如下两段代码添加后台播放代码://后台播放音频设置 AVAudioSession *session = [AVAudioSess
2012-07-26 11:49:57
35493
2
原创 Objective-C的delloc方法中,将对象置为nil和将对象release的区别
阅读别人代码的时候,经常会在delloc方法中,看到有的人释放对象使用self.xxx=nil,有些人使用[xxx release];就忍不住想查看一下这两者的区别;搜索资料之后,看到网上找到如下说法:self.xxx = nil;等价于[xxx release]; xxx = [nil retain];所以以后在delloc方法中,还是尽量用self.xxx = nil
2012-07-25 15:14:21
2309
1
原创 html5使用local storage存储的数据在本地是以何种形式保存的
html5使用local storage存储的数据是如何保存在本地的?(我使用的是chrome浏览器,chrom浏览器是用sqlite来保存本地数据的)Html5 的local storage 是通过浏览器在本地存储的数据。基本使用方法如下:localStorage.firstName = "Tom";alert(localStorage.firstName);这样
2012-07-10 16:21:03
6856
转载 ZBarSDK–读取条形码信息
ZBarSDK–读取条形码信息介绍:ZBarSDK是一个开源的SDK,可从这里下载到源码,该SDK实现了识别和读取各种条形码,包括EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 和 QR Code。帮助文档:http://zbar.sourceforge.net/iphone/sdkdo
2012-07-05 16:24:49
5105
原创 如何让UITextView一直显示滚动条
http://www.cocoachina.com/bbs/simple/?t64154.html//头文件#import @interface TextView : UIView{ UITextView *boxText;}- (id)initWithFrame:(CGRect)frame withContext:(NSString *)text;@end
2012-06-14 15:52:11
7046
转载 ios UIScrollView原理
UIScrollView 原理 在滚动过程当中,其实是在修改原点坐标。当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么 scroll view 发送 tracking events 到被点击的 subview。假如在计时器到点前发生了移动事件,那么 scroll view 取消 tracking 自己发生滚动。
2012-06-12 18:48:16
2650
1
原创 iOS手势
在 iPhone 或 iPad 的开发中,除了用 touchesBegan / touchesMoved / touchesEnded 这组方法来控制使用者的手指触控外,也可以用 UIGestureRecognizer 的衍生类別来进行判断。用 UIGestureRecognizer 的好处在于有现成的手势,开发者不用自己计算手指移动轨迹。UIGestureRecognizer的衍生类別有以下几种
2012-06-12 11:28:30
2195
转载 iOS开发键盘弹出时遮住输入框的问题
在UITextFieldDelegate委托中,修改view的frame-(BOOL)textFieldShouldReturn:(UITextField*)textField { // When the user pressesreturn, take focus away from the text field so that the keyboard
2012-06-09 15:54:43
1445
转载 iOS extern使用教程
ios开发使用extern访问全局变量使用extern关键字法: 1 、新建Constants.h文件(文件名根据需要自己取),用于存放全局变量; 2、 在Constants.h中写入你需要的全局变量名,但是在定义时不能对其进行初始化,否则就出错例如: NSString *url;//指针类型
2012-06-07 14:12:00
17835
原创 ObjectiveC 深浅拷贝(mutableDeepCopy)学习
在ObjectiveC 中,什么是深浅拷贝? 深浅拷贝分别指深拷贝和浅拷贝,即mutableCopy和copy方法。copy复制一个不可变对象,而mutableCopy复制一个mutable可变对象。什么时候用到深浅拷贝?下面举几个例子说明。 非容器类对象 如NSString,NSNumber等一类对象 示例1:// 非容器类对象 NSString *
2012-06-03 10:27:43
3369
转载 iOS 异步加载图片简单示例
iPhone 异步加载图片AsyncImageView.h文件@interface AsyncImageView : UIView {NSURLConnection* connection;NSMutableData* data;}@endAsyncImageView.m文件@implementation AsyncImageView - (
2012-05-27 21:34:56
3997
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人