自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 Runtime (二) 之 —— OC如何实现NSObject

 在上一章里面,笔者向大家介绍了在Objective-C里面的几个非常重要的概念, 简单的说就是SEL,Class和IMP。我们知道Objective-C是C语言的扩展,有了这3个概念还有我们以前讲过的继承和封装的概念,Objective-C发生了翻天覆地的变化,既兼容C语言的高效特性又实现了面向对象的功能。Objective-C从本质上来说,还是C语言的。那么内部究竟是怎样实现SEL,...

2014-03-22 20:51:15 178

原创 Runtime (一) 之 —— Class、Selector、IMP 等概念

源地址:http://www.cnblogs.com/yaski/archive/2009/04/05/1429735.html 我们在实际上的编程过程中,也许会遇到这样的场景,那就是我们在写程序的时候不能确切的知道我们需要使用什么类,使用这个类的什么方法。在这个时候,我们需要在我们的程序里面动态的根据用户的输入来创建我们在写程序不知道的类的对象,并且调用这个对象的实例方法。Objec...

2014-03-22 20:47:10 182

原创 iOS面试攻略之 — 详解Objective-C runtime

原文地址:http://blog.securemacprogramming.com/2013/12/by-your-_cmd/ 感谢翻译小组成员wingpan热心翻译。本篇文章是我们每周推荐优秀国外的技术类文章的其中一篇。如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315)。 本文是我在 Alt Tech Talks: Lo...

2014-03-22 19:30:39 187

原创 (译)KVO的内部实现

09年的一篇文章,比较深入地阐述了KVO的内部实现。 KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。 概览这是怎么实现的呢?其实这都是通过Objective-C强大的运行时(runtime)实现的。当你...

2014-03-22 19:25:09 130

原创 人的能量

人的能量 来源: 关二爷Morgan的日志从今年春天开始,种种原因格外地开始关心一些本原的哲学问题,虽然之前上学时由于种种不顺,经常去接触基督教,教堂也是周末常去放松一下的地方,可是骨子里的血液告诉我那些外教是融不进去我的体内的。今年有了大改观,从近代冯友兰的中国哲学简史开始,到清朝的曾国藩,再追溯到明朝的菜根谭,又继续往前面的朝代追溯慢慢读去,去思考中华传统哲学思想和...

2013-12-30 11:24:27 348

原创 Objective-C 运行时Runtime

这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来。 过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知...

2013-08-29 13:00:42 111

原创 为XCode 4加速

       1. XCode 4打开时,自动加载上次的工程,需要较长时间。     这是因为Lion提供了新功能让应用程序恢复上次关闭时的状态。如果仅是临时不希望下去打开时不要打开现在使用的项目,可以在退出使用CMD+Q+OPTION代替CMD+Q。   如果默认不希望再打开,就可以使用下面的指令:              defaults write com.apple.X...

2013-08-25 10:57:29 116

原创 socket通信 服务端,客户端

CocoaAsyncSocket支持tcp和udp。其中:AsyncSocket类是支持TCP的AsyncUdpSocket是支持UDP的AsyncSocket是封装了CFSocket和CFSteam的TCP/IP socket网络库。它提供了异步操作,本地cocoa类的基于delegate的完整支持。主要有以下特性:队列的非阻塞的读和写,而且可选超时。你可以调用它读取和写...

2013-08-24 23:01:23 216

原创 如何让IOS应用从容地崩溃

虽然大家都不愿意看到程序崩溃,但可能崩溃是每个应用必须面对的现实,既然崩溃已经发生,无法阻挡了,那我们就让它崩也崩得淡定点吧。IOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler 用来做异常处理,但功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误就无能为力了,因为这种错误它抛出的是Signal,所以必须 要专门做Signal处理...

2013-08-24 22:27:41 86

原创 mac忘记登录密码解决方法

开机, 启动时按“cmd+S”。这时,你会进入Single User Model,出现像DOS一样的提示符 #root>。请在#root>下 输入 (注意空格, 大小写)  fsck -y  mount -uaw /  rm /var/db/.AppleSetupDone  reboot 紧接着,苹果电脑会重启 ,并且在开机后出现新装机时的欢迎界面。...

2013-06-13 22:09:26 705

原创 mac上搭建svn服务器

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。我们首先来看下,如何在Mac环境下搭建svn服务器端环境。回到顶部一、创建代码仓库,用来存储客户端所上传的代码我先在/User/apple目录下新建一个...

2013-05-30 21:55:47 141

原创 统计xcode代码行数

如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下find . -name "*.m" -or -name "*.h" |xargs wc -l列出每个文件的行数 find . -name "*.m" -or -name "*.h" |xargs grep -v "^$"|wc -l列出代码行数总和 grep -v "^$"是去掉空

2013-02-01 17:48:33 192

原创 如何使用AV Foundation从摄像头将视频帧捕获为图像

如果译错,感谢指出。英文原文地址:https://developer.apple.com/library/ios/qa/qa1702/_index.html#//apple_ref/doc/uid/DTS40010192为了完成实时的捕获,首先初始化一个AVCaputureSession对象用于创建一个捕获会话(session),我们可以使用AVCaptureSession对象将AV输入...

2012-11-15 17:21:54 292

原创 iPhone静态库学习笔记

 一.基本知识在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会...

2012-11-10 16:30:57 88

原创 iOS单元测试

转自:http://www.cnblogs.com/kesalin/archive/2011/12/23/cocoa_ocunit_ocmock.htmlXCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit。通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能。本文将演示如何在 XCode 4.2 下使用 OCU...

2012-11-05 11:37:21 128

Core Data数据持久化的使用

CoreData 是ios中用来对数据做持久化的一个框架,它对sqlite进行了封装,使我们不需要学习数据库知识,也不要写SQL语句就能将数据保存到数据库。下面来介绍CoreData的如何使用。 1. 新建一个项目,勾选使用Core Data, 新建后需要导入:CoreData.framework  2.新建项目后,AppDelegate类会生成三个属性 ...

2012-10-30 21:31:17 146

ASIHTTPRequest缓存策略的设置

ASIHTTPRequest 是一款强大的网络请求框架,该框架自带了数据的缓存策略,下面来介绍该功能的使用方法。 1.创建缓存对象 //创建缓存对象 ASIDownloadCache *asiCache = [[ASIDownloadCache alloc] init]; //设置缓存目录,这里设置沙盒目录...

2012-10-30 17:23:04 116

原创 iOS6 新增特性

1. Maps替换Google Map为苹果自行研发3D地图2. Social Network集成新浪微博,Facebook , Twitter等社交网络帐号管理。 < Social.framework >3. Pass Kit提供通行证SDK,可以此为基础开发电子通行证甚至实体物理票务。4. Game Center可调用GKChallenge函数发起...

2012-10-29 11:10:01 135

原创 【无限互联】程序员技术练级攻略

前言你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。...

2012-10-26 13:14:54 105

原创 【无限互联】mac系统读写NTFS

简单几个命令 sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.origsudo vi /sbin/mount_ntfs#!/bin/sh/sbin/mount_ntfs.orig -o rw "$@" sudo chown root:wheel /sbin/mount_ntfssudo chmod 755 /sbin/mou...

2012-10-23 20:37:51 125

原创 【无限互联】xcode自定义类的模板

 翻译:http://www.bobmccune.com/2012/03/04/creating-custom-xcode-4-file-templates/其实说是翻译有些牵强。我想实现的东西很简单:每次新创建类文件的时候都会自带一些函数,如:@interface ViewController : UIViewController@end我希望是:@interfa...

2012-10-23 19:37:42 90

【无限互联】适配iOS6和iPhone5屏幕

  1. iOS6的mo模拟器比较大,通过command+1/2/3 调整大小, 没有Home键,可以使用command+shift+h/hh(双击)  代替 2. iPhone5的分辨率是1136x640, 尺寸是568x320, 适配iPhone5的屏幕首先要添加Default-568h@2x.png 作为启动图片,不然上下会有黑边。 3. 控制器的根视图如果使用xib...

2012-10-23 18:05:23 98

原创 【无限互联】mac下配置svn服务器

在mac下配置svn服务器其实很简单,只需要简单的几句命令就可以开启了。配置步骤如下: 1.创建svn仓库 svnadmin create /Users/apple/svn 2.修改配置文件进入到仓库配置目录 cd /Users/apple/svn(1)编辑配置文件svnserve.conf 取消下列行的注释anon-access = readauth-access = rea...

2012-10-22 13:30:47 87

【无限互联】iOS开发之多线程开发

本节要点:1.多线程的概念2.掌握iOS中多线程的多种创建方式 多线程的概念 ● 每个进程是一个应用程序,都有独立的内存空间● 同一个进程中的线程共享其进程中的内存和资源● 使用多线程技术,提高CPU的使用率,防止主线程堵塞。 ● 多个线程可以提高应用程序在多核系统上的实时性能● 每个程序都有⼀一个主线程,程序启动时,创建主线程,调用main 函...

2012-10-10 17:41:30 80

【无限互联】iOS开发block用法之UIAlertView控件的修改

原始的UIAlertView的需要通过委托方法来实现按钮点击事件,需要设置代理,实现委托方法,比较繁琐。我们可以自定义一个UIAlertView类,通过block语法替代委托代理,这样的话,使用该自定义的UIAlertView就比较方便了。 BlockUIAlertView.h 文件 [cpp] view plaincopytypedef void...

2012-10-10 17:06:01 205

原创 【无限互联】2012年10月编程语言排行榜:Dart 首次进入 Top 50

 TIOBE 于近日公布了2012年10月编程语言指数排行榜,排名前三的还是 C、Java、Objective-C。Dart 语言在本月头次进入 TIOBE 指数排行榜的 Top 50 (第 43 位)。Dart 是一种设计用于开发Web应用程序(客户端)的编程语言,由Google主导开发,于2011年10月公开。其开发团队由Google Chrome浏览器V8引擎团队的领导者拉尔斯·巴克...

2012-10-10 16:38:25 98

原创 Objective-C新特性

基于Xcode4.4(不完全独有)。1. 成员方法无需前置声明之前,我们调用一个定义在后面(未声明)的成员方法,比如[self callSomeMethod],会得到警告说没有找到该函数。通常,这种情况下,为了消除这个警告,我们会很郁闷地(为了代码整洁)跑到前面声明下,使用旧版本Xcode往往还要临时写一个匿名扩展(新版本Xcode自动生成);或者(无所谓地)直接把后面的函数定义放到前面。现在,编...

2012-09-05 14:38:44 88

原创 iphone-NSDate日期处理

 NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates        NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能。Date对象是不可改变的。        如果你要创建date对象并表示当前日期,你可以alloc一个NSDate对象并调用init初始化:NSDate *now...

2012-08-31 16:25:59 89

原创 iphone开发资源汇总

如何用Facebook graphic api上传视频:http://developers.facebook.com/blog/post/532/Keychain保存数据封装:https://github.com/carlbrown/PDKeychainBindingsController对焦功能的实现:http://www.clingma...

2012-08-31 16:16:41 99

原创 iOS-如何让xcode自动检查内存泄露

在project-setting中找到 “Run Static Analyzer” 键,然后把值修改为“YES”.这样在编码的时候,xcode就可以自动为我们检查内存泄露了. 

2012-08-31 16:05:59 89

原创 UIScrollView的属性总结

在滚动过程当中,其实是在修改原点坐标当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器,假如在计时器到点后,没有发生手指移动事件,那么,scroll view发送tracking events到被点击的subview假如在计时器到点前,发生了移动事件,那么 scroll view 取消tracking自己发生滚动子类可以重载touchesSho...

2012-02-08 15:58:07 80

原创 iPhone开发之 ARC是什么

相关链接:http://blog.youkuaiyun.com/diyagoanyhacker/article/details/7069889 http://www.yifeiyang.net/development-of-the-iphone-simply-1/ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counti...

2012-01-17 16:58:10 312

原创 画图时 自己做的一小笔记

0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文1 CGContextMoveToPoint 开始画线2 CGContextAddLineToPoint 画直线4 CGContextAddEllipseInRect 画一椭圆4 CGContextSetLineCap 设置线条终点形状4 CGCont...

2012-01-07 21:02:10 82

原创 让Xcode 4.2生成的app支持旧版iOS设备(armv6)

这几天遇到一个非常奇怪的问题,基于Xcode 4.2开发的app,导出的ipa安装包不能安装到iPod Touch 2上。Touch2固件版本是4.2.1,已越狱。iTunes、91手机助手、同步推试过了都不行。但是其他ipa文件可以成功安装到Touch2上。而Xcode 4.2生成的ipa包在iPhone 4、iPhone 3GS、iPod Touch 4都能安装成功并顺利运行,无论固件什么版本...

2012-01-07 00:46:16 131

原创 UIView创建不规则视图

原文地址:http://xubenyang.me/309总所周知,UIView都是方形的,并不能产生一个不规则的形状的view(小弟才疏学浅,目前确实没有发现能够创建真实不规则视图的方法,如果有,不吝赐教,感激涕零!)。为什么我们有创建不规则view的需求?如果只是为了在View上显示不规则图形那大可不必,直接讲不规则图形添加到view上,然后讲view的backgroundColor设置...

2011-12-14 10:00:45 505

原创 10个迷惑新手的Cocoa,Objective-c开发难点和问题

原文地址: [url]http://www.cocoachina.com/bbs/read.php?tid=74564[/url]首先请谅解我可能使用很多英文,毕竟英文资料将来会是你的主要资料来源。在你继续深入学习之前,请停下脚步弄清这些问题。如果你是新手,这个教程不要希望一次能看的非常透彻,学一定阶段反回来再看看又会有新的体会的。1. c,c++ background...

2011-12-13 00:26:30 108

原创 5个开源库的JSON解析速度测试

iOS5新增了JSON解析的API,我们将其和其他五个开源的JSON解析库进行了解析速度的测试,下面是测试的结果。我们选择的测试对象包含下面的这几个框架,其中NSJSONSerialization是iOS5系统新增的JSON解析的API,需要iOS5的环境,如果您在更低的版本进行测试,应该屏蔽相应的代码调用。- [SBJSON (json-framework)](http://co...

2011-12-03 23:15:35 404

原创 IOS 5编程 内存管理 ARC技术概述

原文:http://blog.youkuaiyun.com/nicktang/article/details/6792972Automatic Reference Counting (ARC) 是一个编译期的技术,利用此技术可以简化Objective-C编程在内存管理方面的工作量。这里我把此技术翻译为自动内存计数器管理技术,下图是使用和不使用此技术的Objective-C代码的区别。[img]...

2011-11-22 23:34:21 70

原创 获取iOS设备当前ip地址

第一种方法是用系统api的方式获取,如下[code="c"]#include #include #include #include #include #include #include #include #include #include #include #include #include ...

2011-11-17 23:16:45 95

原创 Quartz 2D编程指南(2) - 图形上下文(Graphics Contexts)

一个Graphics Context表示一个绘制目标。它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息。Graphics Context定义了基本的绘制属性,如颜色、裁减区域、线条宽度和样式信息、字体信息、混合模式等。我们可以通过几种方式来获取Graphics Context:Quartz提供的创建函数、Mac OS X框架或IOS的UIKit框架提供的函数。Quartz提供了多种G...

2011-11-12 00:08:14 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除