自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 资源 (14)
  • 收藏
  • 关注

原创 来自 Swift 社区的最佳实践

https://github.com/KevinHM/ios-good-practices-the-lastest-version/blob/master/Swift-Best-Practices.md 主题持续更新中。。。感兴趣可 star 这个项目

2015-09-20 12:29:44 275

原创 《iOS开发的最佳实践》(中文翻译)

https://github.com/KevinHM/ios-good-practices-the-lastest-version我整理翻译的最新版 iOS开发的最佳实践, 融合了以往 Objective-C 和最近一些关于 Swift 的内容, Enjoy!

2015-08-23 11:15:37 255

原创 《禅与Objective-C编程艺术》 (中文译本)

我参与翻译及后期校验的《禅与 Objective-C 编程艺术》 中文译本,https://github.com/oa414/objc-zen-book-cn我的其他项目: https://github.com/KevinHM/FunctionalReactiveProgrammingOniOS https://github.com/KevinHM/ios-good-practices-the...

2015-08-23 10:20:52 348

原创 iOS函数响应型编程(译书)

利用业余时间翻译完成了Ash Furrow的《Functional Programming On iOS》一书,放在这里,欢迎拍砖~

2015-08-02 16:18:59 200

原创 SVN递交时提示‘file’ is scheduled for addition, but is missing

svn提交错误file is scheduled for addition, but is missingsvn ci -m ""svn: E155010: Commit failed (details follow):svn: E155010: '/Users/XXX/touchome/MVC/Pages/SmartPage/SmartSyncOnOff' is schedule

2014-12-12 21:00:12 1509

原创 iOS开发 各种内存管理权限控制符的区别

readwrite:是可读可写特性,需要生成getter和setter方法;readonly是之都特性,只会生成getter方法,不会生成setter方法,不希望属性在类外改变时候使用;alloc 对象分配后引用计数为1retain 对象的引用计数+1copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变assign:是赋值特性,setter方法将传入

2014-12-11 17:32:34 647

转载 简单制作 OS X Yosemite 10.10 正式版U盘USB启动安装盘方法教程 (全新安装 Mac 系统)

伴随着 iMac 5K Retina 和新的 Mac mini 等硬件的发布,苹果终于都推出了 OS X Yosemite 系统正式版了!相信很多人都已经用上。不过对于一些不想升级,而是打算「全新安装」系统的朋友却遇到一个小问题。那就是怎样制作 OS X Yosemite 正式版 的U盘启动安装盘?其实方法比较简单,下面我们就给大家带来一个制作 Yosemite U盘启动盘/安装盘的教

2014-11-12 21:55:22 3645

转载 如何判断ios设备中是否安装了某款应用

主要思路就是 ,在要被识别的应用程序B的XCode的info.plist中       如果是Xcode 4.2  ,那么       1. 在info.plist 中 增加 一个  URL  Schemes: XXX           添加的具体细节是:           1.1 打开 info.plist  ,在 Information Property L

2014-11-11 16:49:19 530

转载 xCode6制作动态及静态Framework

有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Framework ,随着xCode6的发布,相信小伙伴们已经都知道了,xCode6支持做Framework了. 同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用xCode6制作,目前网上也

2014-11-11 00:42:22 1069

转载 iOS应用性能调优的25个建议

写在前面本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员。这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_。性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然而

2014-11-08 19:32:42 520

转载 Xcode6与Xcode5之间的细节差别(Precompile Prefix Header)

Xcode5中创建一个工程的时候,系统会自动创建一个以以工程名为名字的pch(Precompile Prefix Header)文件,开发的过程中可以将广泛使用的头文件以及宏包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上给程序员带来了编程的便利性。但是在Xcode6中去掉Prec

2014-11-05 10:06:43 560

转载 iOS开发那些事--iOS6 UI状态保持和恢复

iOS设计规范中要求,当应用退出的时候(包括被终止运行时候),画面中UI元素状态需要保持的,当再次进来的时候看状态与退出是一样的。iOS6之后苹果提供以下API使得UI状态保持和恢复变得很容易了。 在iOS6中我们可以在3地方实现状态保持和恢复: 应用程序委托对象 视图控制器 自定义视图 为了演示这个功能实现,我们把基于故事板

2014-10-31 11:50:36 530

原创 iOS禁止屏幕锁定

如果一个基于iPhone OS的设备在某个特定时间段中没有接收到触摸事件,就会关闭屏幕,并禁用触摸传感器。以这种方式锁定屏幕是省电的重要方法。因此,除非您确实需要在应用程序中避免无意的行为,否则应该总是打开屏幕锁定功能。举例来说,如果您的应用程序不接收屏幕事件,而是使用其它特性(比如加速计)来进行输入,则可能需要禁用屏幕锁定功能。将共享的UIApplication对象的idleTimerD

2014-10-30 23:47:37 788

转载 [译]关于iOS和OS X废弃的API你需要知道的一切

原文: Everything You Need to Know about iOS and OS X Deprecated APIs如你所知,已废弃(Deprecated)的API指的是那些已经过时的并且在将来某个时间最终会被移除掉的方法或类。通常,苹果在引入一个更优秀的API后就会把原来的API给废弃掉。因为,新引入的API通常意味着可以更好的发挥新硬件或操作系统的性能,或者可以使用

2014-10-30 22:26:37 501

转载 非常有用的 Markdown 编辑器和工具

Markdown 是 2004 年由 John Gruberis 设计和开发的纯文本格式的语法,所以通过同一个名字它可以使用工具来转换成 HTML。readme 文件,在线论坛编写消息和快速创建富文本文档的文本编辑器都非常流行使用 Markdown 格式。在这篇文章中,我们会介绍 Windows 和 Mac OSx 下的一些有用的 Markdown 编辑器和工具。下面列表的工具会帮助您无障

2014-09-30 12:35:24 1071

转载 iOS UUID配合keychain的替换方案实现 - Herooic

iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个iOS程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使用。在应用里使用使用keyChain,我们需要导入Secur

2014-09-29 11:54:02 631

转载 Markdown+Pandoc,打通写作界的任督二脉!

前言Markdown+Pandoc,可以把自己的写作内容,变成世界上已有的任何格式的文件,包括很炫的slide,html5。没有人(或者我没看到)总结过这些内容,导致我走了很多弯路才最终打通任督二脉,特此纪念。了解Markdwon以后,我的写作世界,只有它;看到Pandoc格式转换以后,对生成的slide和pdf羡慕的不行。那时,自己期望以后的写作是这样的:首先用Markdown把自己

2014-09-25 23:09:28 568

转载 iOS程序员面试(六级考~)

题目多源于项目中遇到的错误和平时的误区,要是能了ru

2014-09-22 00:16:18 599

转载 Objective-C类方法load和initialize

过去两个星期里,为了完成一个工作,接触到了NSObject中非常特别的两个类方法(Class Method)。它们的特别之处,在于iOS会在运行期提前并且自动调用这两个方法,而且很多对于类方法的规则(比如继承,类别(Category))都有不同的处理。而因为这两个方法是在程序运行一开始就被调用的方法,我们可以利用他们在类被使用前,做一些预处理工作。比如我碰到的就是让类自动将自身类名保存到一

2014-09-05 16:52:22 485

转载 Cocoa对象 根类

Cocoa对象 根类是本文要介绍的内容,仅凭Objective-C语言和运行环境并不足以构造哪怕是最简单的面向对象的程序,至少是不容易的。还缺少一些东西:即所有对象公有的基本行为和接口的定义。根类正是提供了这些定义。之所以叫根类,是因为它位于整个类层次(这里是指Cocoa的类层次)的根上。根类不从其它类继承,但是类层次中的所有其它类都最终从根类继承下来。根类连同Objective-C语言,

2014-08-18 23:43:27 666

转载 使用NSProxy实现代理模式

// MyProxy.h#import @interface MyProxy : NSProxy {    NSObject *object;}- (id)transformToObject:(NSObject *)anObject;@end// MyProxy.m#import "My

2014-08-18 23:40:10 1263

转载 NSProxy实现AOP方便为ios应用实现异常处理策略

y前段时间关注过objc实现的AOP。在GitHub找到了其中的两个库:AOP-in-Objective-C 和 AOP-for-Objective-C第一个是基于NSProxy来实现的;第二个是基于GCD以及block实现的;两者都使用了Cocoa的运行时编程技术,将拦截器注入给代理对象,使其干涉真是对象的执行顺序从而达到给代码增加“切面”的目的,这里的模式就是通

2014-08-18 23:39:10 403

转载 再次温习下C\C++的内存分配

作为一名程序员 这是要融入骨髓的东西,让我们再

2014-08-14 00:13:24 456

转载 IOS7 根据字符串求尺寸

一、先用xcode创建一个单视图工程主界面为为NSString写个求size的分类#import "NSString+Size.h"@implementation NSString (Size)- (CGSize)textSizeWithFont:(UIFont *)font constrainedTo

2014-08-11 18:24:07 398

转载 ARC在IBOutlet属性中的使用

ARC提供四种所有权修饰符:strongweakunsafe_unretainedautoreleasing其中前三个可以用于属性中声明所有权。对于这三个用于属性声明的修饰符,下面分别讲讲他们对应的使用场景。1.strongstrong与之前的retain差不多,可以增加属性引用计数的值。在不需要的时候,需要手动设置属性为nil。

2014-08-11 18:21:51 449

转载 如何使用KeyChain保存和获取UDID

本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题。并给出一个获取UDID的工具类,使用方便,只需要替换两个地方即可。 一、iOS不用版本获取UDID的方法比较    1)iOS 5.0  iOS 2.0版本以后UIDevice提供一个获取设备唯一标识符的方法uniqueIdentifie

2014-08-11 15:11:37 481

转载 iOS开发第三方库的汇集

做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。 首先整理了一份Github上排名靠前的iOS库(大概600个repos) 除了逛一下每

2014-08-09 14:17:38 480

转载 iOS后台播放音乐

iOS4之后就支持后台播放音频了。只需下面两步就可以实现后台播放音频操作了:1、在Info.plist中,添加"Required background modes"键,其值设置如下图所示:2、添加AVFoundation框架,然后再添加如下两段代码添加后台播放代码:[cpp] view plaincopy/

2014-08-07 21:23:43 494

转载 关于CGRect的知识

这些是在CGGeometry.h里的 CGPoint、CGSize、CGRect、CGRectEdge实际上都是结构体struct CGPoint {  CGFloat x;  CGFloat y;};typedef struct CGPoint CGPoint;  struct CGSize {  CGFloat w

2014-08-05 15:55:49 521

转载 NSMutableURLRequest,在POST方式下传递参数

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; NSUserDefaults *defs = [NSUserDefaults standardUserDefaults]; NSLog(@"Load currentCookie:%@", cookie); [request setV

2014-08-04 18:08:00 571

转载 使用NSSecureCoding协议进行对象编解码

NSCoding是把数据存储在iOS和Mac OS上的一种极其简单和方便的方式,它把模型对象直接转变成一个文件,然后再把这个文件重新加载到内存里,并不需要任何文件解析和序列化的逻辑。如果要把对象保存到一个数据文件中(假设这个对象实现了NSCoding协议),那么你可以像下面这样做:Foo *someFoo = [[Foo alloc] init]; [NSKeyedArchiver archi

2014-08-04 10:55:25 831

转载 iOS设备唯一标识<二>

英文原文:In iOS 7 and later, if you ask for the MAC address of an iOS device, the system returns the value 02:00:00:00:00:00. If you need to identify the device, use the identifierForVendor property of UI

2014-08-02 15:22:21 601

转载 IOS中系统唯一标识ID<一>

在2013年3月21日苹果已经通知开发者,从2013年5月1日起,访问UIDID的应用将不再能通过审核,替代的方案是开发者应该使用“在iOS 6中介绍的Vendor或Advertising标示符”。unique Identifier即将退出,苹果给了我们Vendor和Advertising identifier两个选择,但应该用哪一个?文档并没有给出确切答案,具体使用哪个完全由你根

2014-08-02 15:19:08 531

转载 Objective-C determine data network type of the iOS device

Im on an application that receive data from server, the problem is when user connect to cellular data (Not 3G or WIFI), it take ages to receive data.i had implemented this code from this Answer bu

2014-07-24 10:03:21 1025

转载 iphone判断当前网络连接类型WIF、WWAN、2G和3G

在 apple 管网sample code的Reachability只能区分出无网络、wifi和wwan(2G&2.5G&3G)类型的网络连接类型,只需重构networkStatusForFlags方法,即可详细区分出2G与3G网络 。首先 去 apple 管网下载demo ,Reachability地址:http://developer.apple.com/libra

2014-07-24 09:48:46 688

转载 iOS平台判断2G,3G,wifi网络类型

相信大家都有过类似的需求,需要判断iOS上面当前连接的网络是2G,3G还是wifi?大部分的做法是使用reachability这个类,但是这种做法有一个致命的缺点就是:无法区分2G和3G。虽然网上号称有人可以准确的区分开,但是我自己测试,发现并非如此。而且reachability这种做法,需要连接到指定的一个网站,然后采用通知的方式来获取连接的状态,由此可见这种做法,既慢又复杂。下面就介绍一种简单

2014-07-24 09:42:46 917

转载 程序中显示WIFI提示

如果程序中用到了WiFi,想有WiFi提示,怎么做呢?其实很简单,只需要在.plist文件中加入如下Key/Value即可:代码键名:Application uses Wi-Fi 值:YES  键名:SBUsesNetwork 值:3  如图所示:

2014-07-14 17:59:30 516

转载 iOS开发之PJSIP

最近项目中要用到VoIP,VoIP全称Voice over Internet Protocol,即网络电话,生活中经常用到,例如Skype。能用到iPhone上面的VoIP库不多,最开始准备使用Lipphone,但其编译实在太慢,编译了N次也没有成功,最后放弃啦。后来尝试使用pjsip,居然成功了,简单的记录一下过程,其实是照着官网操作的:)一、环境需求:iPhone应用推

2014-07-14 17:55:11 732

转载 iOS开发 获取当前WIFI的SSID

首先添加框架:SystemConfiguration.framework然后引用#import - (NSString *) getDeviceSSID{    NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();        id info = nil;   

2014-07-09 11:27:34 562

转载 NSString、NSData 、Char *之间的转换

1. NSString转化为UNICODE String:(NSString*)fname = @“Test”;char fnameStr[10];memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length]));与strcpy相比,memcpy并不是遇到'\0'就结束,

2014-07-09 11:21:26 668

iOS7ProgrammingPushingTheLimits

目前大部分开发者的新项目支持最低的SDK版本已经是iOS7了,如果想知道iOS7更多方面的知识以及平时开发很少触及的方面,我想那本著名的iOS6ProgrammingPushingTheLimits作者的又一力作是个不错的选择!

2015-03-03

ProGit中文版

git学习的最强著作,如果你是一位Git代码管理的爱好者,如果你正在使用git管理你的代码,如果你打算用git来管理代码,这是一本少有的全面的Git教程

2015-03-03

《Pro Git》中文高清版

Git使用的极为详细的指南,因为网上找中文版不太容易,故分享出来。希望大家喜欢!

2014-10-08

The Complete Friday Q&A_ Volume I

著名的周五问答项目中 Cocoa & CocoaTouch相关主题的精彩内容,几乎覆盖了iOS开发晦涩难懂的知识的方方面面,一代经典在此就不再多说了!

2014-10-08

Professional iOS Network Programming

iOS网络编程经典,iOS网络开发用到的基础知识以及网络请求的全部过程从生成到抓取错误信息,网络安全、线程优化、Low-Level Networking、测试、推送等,以及APP之间的网络通信,等等

2014-10-03

NSHipster:Obscure Topics In Cocoa & Objective-C

Cocoa 和 Objective-C中的晦涩的技巧:Mattt Thompson大神的作品,NSHipster.com的创立者,AFNetwork作者,不解释。

2014-10-02

GTM64\AES\MD5等加密解密

各种加密解密的方法,已经写成了类,可以直接在项目中使用

2013-12-05

UIScrollViewReuse(UIScrollView复用)

这份代码中对于UIScrollView的复用机制和对UIScrollView本身的基本属性理解得非常全面透彻,因而代码中的复用机制只用了不到20行的代码就完美地实现了,较之于其他一些第三方的复用机制更加简洁、直接、轻便。目前已经在我的产品中使用,内存的管理极致经典,请大家享用~

2013-12-05

InAppPurchase(内购)

这份In App Purchase代码基本上是很多上架产品的标准内购Demo,我的作品中也基本用这个Demo的一部分方法来现实内购功能,请享用吧~

2013-12-05

自定义相册(AssetLibarayDemo)

使用AssetLibaray库制作的自定义相册,可以随意定义相册的UI,不必拘泥于系统相册的样子,如果加上GUPImage这个滤镜效果的第三方类,可以制作出完美的相机应用,当然还需要下载我的另一个demo:"自定义相机(AVFoundationDemo)",哈哈~

2013-12-05

AVFoundationDemo(自定义相机)

直接可以放在代码中使用的AVFoundation制作的自定义相机,核心代码已经使用在上线产品中,请大家享用~

2013-12-05

InAppPurchaseDemo(app内购)

appStore上线产品中使用的内购程序Demo,用于实现App内购的客户端代码,可复用性强~

2013-12-05

UIScrollView复用

这是一个极为简洁的UIScrollView复用的实例,目前已经被我运用在我的某款AppStore上线产品中,较之于github一些常见的UIScrollView的复用,本demo中的复用代码更加简单,逻辑更为清晰,内存消耗控制到极致,大家好好享用吧~

2013-12-05

空空如也

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

TA关注的人

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