- 博客(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
347
原创 《iOS开发的最佳实践》(中文翻译)
https://github.com/KevinHM/ios-good-practices-the-lastest-version我整理翻译的最新版 iOS开发的最佳实践, 融合了以往 Objective-C 和最近一些关于 Swift 的内容, Enjoy!
2015-08-23 11:15:37
359
原创 《禅与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
406
原创 iOS函数响应型编程(译书)
利用业余时间翻译完成了Ash Furrow的《Functional Programming On iOS》一书,放在这里,欢迎拍砖~
2015-08-02 16:18:59
264
原创 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
1545
原创 iOS开发 各种内存管理权限控制符的区别
readwrite:是可读可写特性,需要生成getter和setter方法;readonly是之都特性,只会生成getter方法,不会生成setter方法,不希望属性在类外改变时候使用;alloc 对象分配后引用计数为1retain 对象的引用计数+1copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变assign:是赋值特性,setter方法将传入
2014-12-11 17:32:34
684
转载 简单制作 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
3786
转载 如何判断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
565
转载 xCode6制作动态及静态Framework
有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Framework ,随着xCode6的发布,相信小伙伴们已经都知道了,xCode6支持做Framework了. 同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用xCode6制作,目前网上也
2014-11-11 00:42:22
1102
转载 iOS应用性能调优的25个建议
写在前面本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员。这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_。性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然而
2014-11-08 19:32:42
551
转载 Xcode6与Xcode5之间的细节差别(Precompile Prefix Header)
Xcode5中创建一个工程的时候,系统会自动创建一个以以工程名为名字的pch(Precompile Prefix Header)文件,开发的过程中可以将广泛使用的头文件以及宏包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上给程序员带来了编程的便利性。但是在Xcode6中去掉Prec
2014-11-05 10:06:43
610
转载 iOS开发那些事--iOS6 UI状态保持和恢复
iOS设计规范中要求,当应用退出的时候(包括被终止运行时候),画面中UI元素状态需要保持的,当再次进来的时候看状态与退出是一样的。iOS6之后苹果提供以下API使得UI状态保持和恢复变得很容易了。 在iOS6中我们可以在3地方实现状态保持和恢复: 应用程序委托对象 视图控制器 自定义视图 为了演示这个功能实现,我们把基于故事板
2014-10-31 11:50:36
589
原创 iOS禁止屏幕锁定
如果一个基于iPhone OS的设备在某个特定时间段中没有接收到触摸事件,就会关闭屏幕,并禁用触摸传感器。以这种方式锁定屏幕是省电的重要方法。因此,除非您确实需要在应用程序中避免无意的行为,否则应该总是打开屏幕锁定功能。举例来说,如果您的应用程序不接收屏幕事件,而是使用其它特性(比如加速计)来进行输入,则可能需要禁用屏幕锁定功能。将共享的UIApplication对象的idleTimerD
2014-10-30 23:47:37
850
转载 [译]关于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
558
转载 非常有用的 Markdown 编辑器和工具
Markdown 是 2004 年由 John Gruberis 设计和开发的纯文本格式的语法,所以通过同一个名字它可以使用工具来转换成 HTML。readme 文件,在线论坛编写消息和快速创建富文本文档的文本编辑器都非常流行使用 Markdown 格式。在这篇文章中,我们会介绍 Windows 和 Mac OSx 下的一些有用的 Markdown 编辑器和工具。下面列表的工具会帮助您无障
2014-09-30 12:35:24
1253
转载 iOS UUID配合keychain的替换方案实现 - Herooic
iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个iOS程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使用。在应用里使用使用keyChain,我们需要导入Secur
2014-09-29 11:54:02
664
转载 Markdown+Pandoc,打通写作界的任督二脉!
前言Markdown+Pandoc,可以把自己的写作内容,变成世界上已有的任何格式的文件,包括很炫的slide,html5。没有人(或者我没看到)总结过这些内容,导致我走了很多弯路才最终打通任督二脉,特此纪念。了解Markdwon以后,我的写作世界,只有它;看到Pandoc格式转换以后,对生成的slide和pdf羡慕的不行。那时,自己期望以后的写作是这样的:首先用Markdown把自己
2014-09-25 23:09:28
593
转载 Objective-C类方法load和initialize
过去两个星期里,为了完成一个工作,接触到了NSObject中非常特别的两个类方法(Class Method)。它们的特别之处,在于iOS会在运行期提前并且自动调用这两个方法,而且很多对于类方法的规则(比如继承,类别(Category))都有不同的处理。而因为这两个方法是在程序运行一开始就被调用的方法,我们可以利用他们在类被使用前,做一些预处理工作。比如我碰到的就是让类自动将自身类名保存到一
2014-09-05 16:52:22
517
转载 Cocoa对象 根类
Cocoa对象 根类是本文要介绍的内容,仅凭Objective-C语言和运行环境并不足以构造哪怕是最简单的面向对象的程序,至少是不容易的。还缺少一些东西:即所有对象公有的基本行为和接口的定义。根类正是提供了这些定义。之所以叫根类,是因为它位于整个类层次(这里是指Cocoa的类层次)的根上。根类不从其它类继承,但是类层次中的所有其它类都最终从根类继承下来。根类连同Objective-C语言,
2014-08-18 23:43:27
691
转载 使用NSProxy实现代理模式
// MyProxy.h#import @interface MyProxy : NSProxy { NSObject *object;}- (id)transformToObject:(NSObject *)anObject;@end// MyProxy.m#import "My
2014-08-18 23:40:10
1295
转载 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
426
转载 IOS7 根据字符串求尺寸
一、先用xcode创建一个单视图工程主界面为为NSString写个求size的分类#import "NSString+Size.h"@implementation NSString (Size)- (CGSize)textSizeWithFont:(UIFont *)font constrainedTo
2014-08-11 18:24:07
418
转载 ARC在IBOutlet属性中的使用
ARC提供四种所有权修饰符:strongweakunsafe_unretainedautoreleasing其中前三个可以用于属性中声明所有权。对于这三个用于属性声明的修饰符,下面分别讲讲他们对应的使用场景。1.strongstrong与之前的retain差不多,可以增加属性引用计数的值。在不需要的时候,需要手动设置属性为nil。
2014-08-11 18:21:51
467
转载 如何使用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
503
转载 iOS开发第三方库的汇集
做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。 首先整理了一份Github上排名靠前的iOS库(大概600个repos) 除了逛一下每
2014-08-09 14:17:38
499
转载 iOS后台播放音乐
iOS4之后就支持后台播放音频了。只需下面两步就可以实现后台播放音频操作了:1、在Info.plist中,添加"Required background modes"键,其值设置如下图所示:2、添加AVFoundation框架,然后再添加如下两段代码添加后台播放代码:[cpp] view plaincopy/
2014-08-07 21:23:43
525
转载 关于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
534
转载 NSMutableURLRequest,在POST方式下传递参数
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; NSUserDefaults *defs = [NSUserDefaults standardUserDefaults]; NSLog(@"Load currentCookie:%@", cookie); [request setV
2014-08-04 18:08:00
605
转载 使用NSSecureCoding协议进行对象编解码
NSCoding是把数据存储在iOS和Mac OS上的一种极其简单和方便的方式,它把模型对象直接转变成一个文件,然后再把这个文件重新加载到内存里,并不需要任何文件解析和序列化的逻辑。如果要把对象保存到一个数据文件中(假设这个对象实现了NSCoding协议),那么你可以像下面这样做:Foo *someFoo = [[Foo alloc] init]; [NSKeyedArchiver archi
2014-08-04 10:55:25
917
转载 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
632
转载 IOS中系统唯一标识ID<一>
在2013年3月21日苹果已经通知开发者,从2013年5月1日起,访问UIDID的应用将不再能通过审核,替代的方案是开发者应该使用“在iOS 6中介绍的Vendor或Advertising标示符”。unique Identifier即将退出,苹果给了我们Vendor和Advertising identifier两个选择,但应该用哪一个?文档并没有给出确切答案,具体使用哪个完全由你根
2014-08-02 15:19:08
563
转载 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
1053
转载 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
748
转载 iOS平台判断2G,3G,wifi网络类型
相信大家都有过类似的需求,需要判断iOS上面当前连接的网络是2G,3G还是wifi?大部分的做法是使用reachability这个类,但是这种做法有一个致命的缺点就是:无法区分2G和3G。虽然网上号称有人可以准确的区分开,但是我自己测试,发现并非如此。而且reachability这种做法,需要连接到指定的一个网站,然后采用通知的方式来获取连接的状态,由此可见这种做法,既慢又复杂。下面就介绍一种简单
2014-07-24 09:42:46
980
转载 程序中显示WIFI提示
如果程序中用到了WiFi,想有WiFi提示,怎么做呢?其实很简单,只需要在.plist文件中加入如下Key/Value即可:代码键名:Application uses Wi-Fi 值:YES 键名:SBUsesNetwork 值:3 如图所示:
2014-07-14 17:59:30
538
转载 iOS开发之PJSIP
最近项目中要用到VoIP,VoIP全称Voice over Internet Protocol,即网络电话,生活中经常用到,例如Skype。能用到iPhone上面的VoIP库不多,最开始准备使用Lipphone,但其编译实在太慢,编译了N次也没有成功,最后放弃啦。后来尝试使用pjsip,居然成功了,简单的记录一下过程,其实是照着官网操作的:)一、环境需求:iPhone应用推
2014-07-14 17:55:11
792
转载 iOS开发 获取当前WIFI的SSID
首先添加框架:SystemConfiguration.framework然后引用#import - (NSString *) getDeviceSSID{ NSArray *ifs = (__bridge id)CNCopySupportedInterfaces(); id info = nil;
2014-07-09 11:27:34
598
转载 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
704
iOS7ProgrammingPushingTheLimits
2015-03-03
The Complete Friday Q&A_ Volume I
2014-10-08
NSHipster:Obscure Topics In Cocoa & Objective-C
2014-10-02
UIScrollViewReuse(UIScrollView复用)
2013-12-05
InAppPurchase(内购)
2013-12-05
自定义相册(AssetLibarayDemo)
2013-12-05
UIScrollView复用
2013-12-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人