- 博客(20)
- 收藏
- 关注
原创 View Controller Programming Guid for iOS 笔记
1.View Controller 基础 1.1 View Controller 分类 ViewController分为container view controller 和content view controller两种类型。 这两种类型只是用途不同,前者作为一个容器容纳其他的view controller,后者用来显示内容,代码上面区别不大。前者包括UINavigationView
2014-03-05 14:19:10 694
原创 iPhone电话与短信相关代码小结
关于iPhone上电话与短信相关功能,做一个简单总结: 使用公开SDK能实现的功能: (1)获取和操作通讯录。使用函数 ABAddressBookRequestAccessWithCompletion 、ABAddressBookCopyArrayOfAllPeople等,需要用户点击按钮确认。 (2)获取电话状态 使用类CTCallCenter可
2014-03-05 14:19:08 1009
原创 时间都去哪儿了?开源一个统计iPhone上App运行时间和打开次数的小工具
如今,大家每天都有大量时间花在手机上,但是,大家有没有想过自己的时间都花在哪些App上了呢?相信很多人都有这样的需求,不过iOS系统本身并不能显示每个App的运行时间和次数,因此,本人写了这样一个小工具,可以在后台进行监控当前使用的App,对App的打开次数和运行时间进行统计,可以显示今日、本周、或全部统计结果,并能按打开次数、运行时长排序。 程序使用的是私有API,因此请勿将本文
2014-03-05 14:19:06 2751
原创 分享一个仿网易新闻客户端iPhone版的标签式导航ViewController
该Controller是一个容器,用于容纳其他的controller。效果与网易新闻客户端的标签式导航基本一样: (1)点击上面的标签,可以切换到对应的controller,标签下面的红色提示条的长度会动态变化。 (2)在下面的内容区里左滑或者右滑可以切换对应的controller,标签会同时变化。 效果如下图所示: 使用方法:
2014-03-05 14:19:03 1086
原创 iOS推送小结(证书的生成、客户端的开发、服务端的开发)
1.推送过程简介 (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请。若注册成功,回调函数application:(UIApplication *)application didRegisterForRemoteNotificationsWithDevice
2014-03-05 14:19:01 474
原创 关于Objective C的私有函数
(1)很多从其他语言(例如C++)转到objective c的初学者,往往会问到一个问题,如何定义类的私有函数?这里的“私有函数”指的是,某个函数只能在类的内部使用,不能在类的外部,或者派生类内部使用。事实上,Objective C中可以定义类的私有变量,但由于objective c是动态语言,因此本质上是不存在私有函数的。但是,也可以用一些机制,来实现类似其他语言中私有函数的效果。 (2
2014-03-05 14:18:59 634
原创 XCode5环境下利用crash log调试线上Crash的流程
1.前言 本文主要介绍在XCode5环境下,如何根据App自己生成的crashlog来调试真机上运行时产生的crash问题。 2. 步骤(1)构造一段会crash的代码,并放到viewDidLoad里面,如下图所示: 以上代码会在objectAtIndex处因为数组越界而crash(2)在程序中捕获crash,生成crashlog,并保存到程序自己的沙
2014-03-05 14:18:57 520
原创 UIApplicationDelegate里面最常用的几个函数执行顺序小结
(1)点击桌面图标正常启动App或者杀死进程后点击推送消息启动App1.application:willFinishLaunchingWithOptions2.application:application:didFinishLaunchingWithOptions3.applicationDidBecomeActive4.application:didRegist
2014-03-05 14:18:55 810
原创 关于NSOperationQueue,一个容易让初学者误解的问题
凡是学习NSOperationQueue的人,都会遇到setMaxConcurrentOperationCount这个函数。在网上的许多博文中,都将setMaxConcurrentOperationCount解释为“设置线程池中的线程数”,我觉得这是一种以讹传讹的说法,相当不准确,容易误导初学者,至少我曾经就被误导过。实际上,NSOperationQueue 可以认为是线程池,但setMaxCon
2014-03-05 14:18:53 771
原创 ASIHTTPRequest源码简单分析
1.前言 ASIHttprequest 是基于CFNetwork的,由于CFNetwork是比较底层的http库,功能比较少,因此,在ASIHttprequest中实现了http协议中比较多的功能,包括代理、gzip、认证、缓存等等。目前,虽然ASIHTTPRequest已经不如前两年那么流行,但是分析一下其代码,对掌握CFNetwork库和HTTP协议还是有好处的,本文将简单分析一下
2014-03-05 14:18:51 731
原创 XCode5 编译ffmpeg流程
今天想在Mac10.9 XCode5的环境下把ffmpeg编译出来,本来以为很好搞定,结果版本一升级,以前的命令行不通了,出各种错误。折腾了三四个小时,最后终于成功了。 编译流程:1.ffmpeg官网下载ffmpeg源代码,并解压。2.从命令行进入ffmpeg目录,输入以下脚本: 模拟器版本:./configure --disable-ffmpeg --disable-ff
2014-03-05 14:18:49 541
原创 iOS7 新后台及下载SDK介绍
在iOS7以前的系统中,App默认是不能后台运行的,如果要后台运行,可以采用以下两类方法: (1)使用beginBackgroundTaskWithExpirationHandler函数,向系统申请一段时间来执行需要后台运行的操作,这种方法的缺点是,后台操作最多只能运行10分钟,超过10分钟之后App会休眠。使用这种方法需要APPNAME-info.plist中设置Application d
2014-03-05 14:18:46 683
原创 ARC模式下获取retainCount的方法
_objc_rootRetainCount(obj)可以获取obj的retainCount,不过不清楚是不是私有api,因此建议调试时使用。
2014-03-05 14:18:44 1510
原创 ios编程时常见问题总结
(1)在UIViewController里面使用了timer,会使得controller被retain,因此在viewdisapper时应将timer置为nil,否则controller的dealloc不会被执行。 (2)如果在UIViewController里面使用ASIHttprequest发送了async请求,并且将request的delegate设置为controller,若请求没
2014-03-05 14:18:42 465
原创 使用私有api实现自己的iphone桌面,并根据app的使用次数对app排序
使用《iphone SprintBoard部分私有API总结》中提到的api,除了能对app运行次数进行监控以外,还可以实现自己的iphone桌面,并根据app 的使用次数对app图标进行排序,从而将使用最频繁的app排在前面。看看下面的tab bar,这个可不是iphone自己的桌面噢,是app里面实现的桌面,同时里面的app图标是按照app执行的次数来排序的。 实现这个程序的原
2014-03-05 14:18:40 1090
原创 使用私有api统计ios app运行时间及次数
利用《iphone SprintBoard部分私有API总结》中提到的私有API,可以做很多越狱以前实现不了的事情。比如,利用一个后台运行的app,监控该iphone上所有app的运行次数及时间。
2014-03-05 14:18:38 2290
原创 iphone SprintBoard部分私有API总结
本文介绍iOS SrpintBoard框架的部分私有API,具体包括:获取ios上当前正在运行的所有App的bundle id(不管当前程序是在前台还是后台都可以)获取ios上当前前台运行的App的bundle id(不管当前程序是在前台还是后台都可以)根据ios app的bundle id得到其App名称、图标(不管当前程序是在前台还是后台都可以)直接通过App 的bundl
2014-03-05 14:18:36 1150
原创 NSInvocation简单总结
(1)用法 NSInvocation是调用函数的另一种方式,它将调用者,函数名,参数封装到一个对象,然后通过一个invoke函数来执行被调用的函数,其思想就是命令者模式,将请求封装成对象。例如,有这样一个类:@implementation CA-(int)AddA:(int)a andB:(int)b{ return a + b;}@end
2014-03-05 14:18:34 667
原创 Objective C运行时(runtime)技术的几个要点总结
前言: Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/class_addMethod函数在运行时对函数进行动态替换或增加新函数(2)重载forwardingT
2014-03-05 14:18:32 548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人