博客园 - 冷愤僧
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=156221
2013-09-02T15:20:20Z
冷愤僧
https://www.cnblogs.com/zhulin/
feed.cnblogs.com
https://www.cnblogs.com/zhulin/archive/2013/02/28/2425428.html
发布时NSLog不打印信息 - 冷愤僧
在程序开发时,会经常使用NSLog打印信息便于调试和跟踪程序的执行。但是发布时需要将这些打印信息都注释掉。这里提供一个简便方法:[在release模式下,通常会定义__OPTIMIZE__;而debug模式不会]因此,只要在头文件中添加如下代码即可:#ifndef __OPTIMIZE__#define NSLog(…) NSLog(__VA_ARGS__)#else#define NSLog(…) {}#endif
2013-02-28T08:59:00Z
2013-02-28T08:59:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】在程序开发时,会经常使用NSLog打印信息便于调试和跟踪程序的执行。但是发布时需要将这些打印信息都注释掉。这里提供一个简便方法:[在release模式下,通常会定义__OPTIMIZE__;而debug模式不会]因此,只要在头文件中添加如下代码即可:#ifndef __OPTIMIZE__#define NSLog(…) NSLog(__VA_ARGS__)#else#define NSLog(…) {}#endif <a href="https://www.cnblogs.com/zhulin/archive/2013/02/28/2425428.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2013/01/31/2887083.html
TestFlight的使用步骤 - 冷愤僧
使用testFlight进行企业部署How to create an IPA (Xcode 4.3)[测试篇]1、将自己的邮箱告诉开发者(不要用QQ企业邮箱,企业邮箱会把它当成垃圾邮件,而且接收不及时);开发者将向你们的邮箱发送邀请;2、邮箱收到邀请邮件后,打开邮件里的链接,用你的邮箱注册一个号就行;3、帐号注册完毕后,即可进行设备的注册。在你们需要用来测试的iOS设备上打开Safari,输入地址testflightapp.com,用刚才注册的帐号登录。4、登录后点击“RegisterDevice”按钮注册设备。注册设备后会在设备上安装一个TestFlight WebClip的描述文件,并在桌
2013-01-31T07:07:00Z
2013-01-31T07:07:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】使用testFlight进行企业部署How to create an IPA (Xcode 4.3)[测试篇]1、将自己的邮箱告诉开发者(不要用QQ企业邮箱,企业邮箱会把它当成垃圾邮件,而且接收不及时);开发者将向你们的邮箱发送邀请;2、邮箱收到邀请邮件后,打开邮件里的链接,用你的邮箱注册一个号就行;3、帐号注册完毕后,即可进行设备的注册。在你们需要用来测试的iOS设备上打开Safari,输入地址testflightapp.com,用刚才注册的帐号登录。4、登录后点击“RegisterDevice”按钮注册设备。注册设备后会在设备上安装一个TestFlight WebClip的描述文件,并在桌 <a href="https://www.cnblogs.com/zhulin/archive/2013/01/31/2887083.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/12/29/2838331.html
“Could not change executable permissions on the application”的原因和解决方法 - 冷愤僧
原因:在手机里已经有一个使用同样bundle identifier的应用;解决方法:删掉那个应用后在build。
2012-12-28T17:11:00Z
2012-12-28T17:11:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】原因:在手机里已经有一个使用同样bundle identifier的应用;解决方法:删掉那个应用后在build。 <a href="https://www.cnblogs.com/zhulin/archive/2012/12/29/2838331.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/12/10/2811614.html
ios禁用多按钮同时点击 - 冷愤僧
对于测试组的同事经常提的bug:两个手指同时点击界面上的多个可点击的视图而出现各种错误。有官方的解决方法,将不允许同时点击的视图都设置下参数: [view setExclusiveTouch:YES];转自:http://wangjun.easymorse.com/?p=1716
2012-12-10T08:36:00Z
2012-12-10T08:36:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】对于测试组的同事经常提的bug:两个手指同时点击界面上的多个可点击的视图而出现各种错误。有官方的解决方法,将不允许同时点击的视图都设置下参数: [view setExclusiveTouch:YES];转自:http://wangjun.easymorse.com/?p=1716 <a href="https://www.cnblogs.com/zhulin/archive/2012/12/10/2811614.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/11/09/2761926.html
iOS6地图“查看路线”、导航功能的实现 - 冷愤僧
在iOS6之前,苹果自带的是Google地图,所以“查看路线”的功能可以通过访问google的url来实现:url 格式为:“http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f”不过iOS6之后,苹果使用了自家地图,以上的方式就只能跳到google 地图网页版,不过体验不太好,还是希望调用本地应用,于是找到了官方文档:http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Articles/MapLinks.html照文档描述
2012-11-09T00:06:00Z
2012-11-09T00:06:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】在iOS6之前,苹果自带的是Google地图,所以“查看路线”的功能可以通过访问google的url来实现:url 格式为:“http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f”不过iOS6之后,苹果使用了自家地图,以上的方式就只能跳到google 地图网页版,不过体验不太好,还是希望调用本地应用,于是找到了官方文档:http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Articles/MapLinks.html照文档描述 <a href="https://www.cnblogs.com/zhulin/archive/2012/11/09/2761926.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/10/18/2729627.html
nil,NULL,NSNull的区别 - 冷愤僧
主要就以下几点:1、nil:一般赋值给空对象;2、NULL:一般赋值给nil之外的其他空值。如SEL等; 举个栗子(好重啊~): [NSApp beginSheet:sheet modalForWindow:mainWindow modalDelegate:nil //pointing to an object didEndSelector:NULL//pointing to a non object/class contextInfo:NULL]; //pointing to a non object/class3、NSNULL:NSNull只有一个方法:+ (NSNull ...
2012-10-18T07:45:00Z
2012-10-18T07:45:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】主要就以下几点:1、nil:一般赋值给空对象;2、NULL:一般赋值给nil之外的其他空值。如SEL等; 举个栗子(好重啊~): [NSApp beginSheet:sheet modalForWindow:mainWindow modalDelegate:nil //pointing to an object didEndSelector:NULL//pointing to a non object/class contextInfo:NULL]; //pointing to a non object/class3、NSNULL:NSNull只有一个方法:+ (NSNull ... <a href="https://www.cnblogs.com/zhulin/archive/2012/10/18/2729627.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/09/19/2693472.html
升级Mountain Lion后git等工具不能用的问题的解决方法 - 冷愤僧
到xCode中下载command line tools 并安装即可
2012-09-19T04:02:00Z
2012-09-19T04:02:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】到xCode中下载command line tools 并安装即可 <a href="https://www.cnblogs.com/zhulin/archive/2012/09/19/2693472.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/09/19/2693467.html
app store,Mac app store 下载加速的方法 - 冷愤僧
将DNS改为:178.79.131.110或8.8.8.8
2012-09-19T04:00:00Z
2012-09-19T04:00:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】将DNS改为:178.79.131.110或8.8.8.8 <a href="https://www.cnblogs.com/zhulin/archive/2012/09/19/2693467.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/09/13/2683994.html
iTunes10.7更新,xCode 安装Mobile Device Framework出错的问题的解决方法 - 冷愤僧
下午更新itunes10.7后,再次打开xCode时提示需要安装Mobile Device Framework,不过总安装失败,提示" An unknown error occurred. See theinstall logfor more details."解决方法:去finder中找到xCode文件,右键->"Show Package contents"->到"/Contents/Resources/Packages/"->安装“MobileDevice.pkg”->OK!整理自:https://disc
2012-09-13T13:14:00Z
2012-09-13T13:14:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】下午更新itunes10.7后,再次打开xCode时提示需要安装Mobile Device Framework,不过总安装失败,提示" An unknown error occurred. See theinstall logfor more details."解决方法:去finder中找到xCode文件,右键->"Show Package contents"->到"/Contents/Resources/Packages/"->安装“MobileDevice.pkg”->OK!整理自:https://disc <a href="https://www.cnblogs.com/zhulin/archive/2012/09/13/2683994.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/09/04/2669835.html
xCode中工程相关的一些处理:导入外部工程 - 冷愤僧
参考:http://www.cnblogs.com/lovecode/archive/2012/02/11/2347072.htmlhttp://tangchuanyao.com/20120213451/
2012-09-03T21:07:00Z
2012-09-03T21:07:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】参考:http://www.cnblogs.com/lovecode/archive/2012/02/11/2347072.htmlhttp://tangchuanyao.com/20120213451/ <a href="https://www.cnblogs.com/zhulin/archive/2012/09/04/2669835.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/09/04/2669834.html
xCode中工程相关的一些处理:制作静态库 - 冷愤僧
1.创建静态库打开XCode新建一个项目,选择Library下的“Cocoa Touch Static Library”,在Classes文件夹上点右键选择“New File…”,然后在“Cocoa Touch Class”下选择“Objective-C class”,这样就可以创建Objective-C风格的源文件和头文件。同样,也可以创建C或者C++风格的代码,在Classes文件夹上点右键,选择“New File…”,这次选择Mac OS X下的“C and C++”,就行。然后在文件里编写具体的调用代码。最后进行编译,就会产生一个以.a为结尾的文件,就是我们需要的静态库。同时我们也需要
2012-09-03T20:57:00Z
2012-09-03T20:57:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】1.创建静态库打开XCode新建一个项目,选择Library下的“Cocoa Touch Static Library”,在Classes文件夹上点右键选择“New File…”,然后在“Cocoa Touch Class”下选择“Objective-C class”,这样就可以创建Objective-C风格的源文件和头文件。同样,也可以创建C或者C++风格的代码,在Classes文件夹上点右键,选择“New File…”,这次选择Mac OS X下的“C and C++”,就行。然后在文件里编写具体的调用代码。最后进行编译,就会产生一个以.a为结尾的文件,就是我们需要的静态库。同时我们也需要 <a href="https://www.cnblogs.com/zhulin/archive/2012/09/04/2669834.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/09/04/2669785.html
xCode中工程相关的一些处理:一个工程包含多个Target的用途和使用方法【转】 - 冷愤僧
【转自:http://www.cocoachina.com/macdev/cocoa/2010/0120/347.html】 对于target,Apple的官方解释是这样的:“ Targets that define the products to build. A target organizes the files and instructions needed to build a product into a sequence of build actions that can be taken.” 简单的理解的话, 可以认为一个target对应一个新的product(基于同一份代码.
2012-09-03T16:07:00Z
2012-09-03T16:07:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】【转自:http://www.cocoachina.com/macdev/cocoa/2010/0120/347.html】 对于target,Apple的官方解释是这样的:“ Targets that define the products to build. A target organizes the files and instructions needed to build a product into a sequence of build actions that can be taken.” 简单的理解的话, 可以认为一个target对应一个新的product(基于同一份代码. <a href="https://www.cnblogs.com/zhulin/archive/2012/09/04/2669785.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/07/05/2578424.html
宝玉提高性能的两点经验分享 - 冷愤僧
1、提高UITableView性能这应该是你图片下载成功后,转到主线程处理的过程耗时太长导致,图片最好显示在CALayer中,下载成功后,只更新CALayer而不要去整体刷新 //我现在用EGOImageLoading进行图片异步加载,但快速滚动时依然会有卡顿。所以想请教一下像这种情况的图片加载,用怎样的异步方式最好呢?提高UITableView性能,注意以下事项: 1.异步加载图片,哪怕本地图片;2. 常用图标字体缓存到内存;3.文字部分自画代替控件(ABTableViewCell);4. 图片用CALayer来显示;5.富文本用CoreText;6.行高的计算要高效,结果要缓存;7. 当前
2012-07-05T13:20:00Z
2012-07-05T13:20:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】1、提高UITableView性能这应该是你图片下载成功后,转到主线程处理的过程耗时太长导致,图片最好显示在CALayer中,下载成功后,只更新CALayer而不要去整体刷新 //我现在用EGOImageLoading进行图片异步加载,但快速滚动时依然会有卡顿。所以想请教一下像这种情况的图片加载,用怎样的异步方式最好呢?提高UITableView性能,注意以下事项: 1.异步加载图片,哪怕本地图片;2. 常用图标字体缓存到内存;3.文字部分自画代替控件(ABTableViewCell);4. 图片用CALayer来显示;5.富文本用CoreText;6.行高的计算要高效,结果要缓存;7. 当前 <a href="https://www.cnblogs.com/zhulin/archive/2012/07/05/2578424.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/06/26/2563937.html
git 分支管理 - 冷愤僧
一、本地分支管理:查看本地所有分支:git branch 【若分支名之前存在 *符号,表示此分支为当前分支】切换到指定分支: git checkout branch2分支合并:先切换到要合并到的分支, 之后 git merge branch2删除分支:git branch -d branch2二、远程分支管理:创建远程分支(将本地分支推送到远程):git push 远程仓库名 本地分支名(如:git push origin localbranch)其他人跟踪新分支: 先获取该远程仓库:git fetch origin 跟踪新分支: git checkout -b [本地分支名]...
2012-06-26T08:39:00Z
2012-06-26T08:39:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】一、本地分支管理:查看本地所有分支:git branch 【若分支名之前存在 *符号,表示此分支为当前分支】切换到指定分支: git checkout branch2分支合并:先切换到要合并到的分支, 之后 git merge branch2删除分支:git branch -d branch2二、远程分支管理:创建远程分支(将本地分支推送到远程):git push 远程仓库名 本地分支名(如:git push origin localbranch)其他人跟踪新分支: 先获取该远程仓库:git fetch origin 跟踪新分支: git checkout -b [本地分支名]... <a href="https://www.cnblogs.com/zhulin/archive/2012/06/26/2563937.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/06/09/2542785.html
git 恢复单个文件的历史版本 - 冷愤僧
首先查看该文件的历史版本信息:git log Default@2x.png记录下需要恢复的commit版本号:如9aa51d89799716aa68cff3f30c26f8815408e926恢复该文件:git reset 9aa51d89799716aa68cff3f30c26f8815408e926 Default@2x.png提交git:git commit -m "revert old file"
2012-06-08T18:49:00Z
2012-06-08T18:49:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】首先查看该文件的历史版本信息:git log Default@2x.png记录下需要恢复的commit版本号:如9aa51d89799716aa68cff3f30c26f8815408e926恢复该文件:git reset 9aa51d89799716aa68cff3f30c26f8815408e926 Default@2x.png提交git:git commit -m "revert old file" <a href="https://www.cnblogs.com/zhulin/archive/2012/06/09/2542785.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/05/21/2511758.html
[转]判断ios中是否安装了某些软件 - 冷愤僧
判断ios中是否安装了某些软件有时候我们想要获取到iphoen手机中安装了那些应用软件,苹果没有提供这方面的api,似乎也是不允许的。如果想要准确的通过程序控制和发现本地安装的应用,目前只能在破解版的ios上开始显示,但是我们可以通过一些其他的途径获取到手机是否安装过某些应用。下面介绍根据应用的app的唯一number,通过[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"321BoomHDFree://"]]这个方法判断手机中是否存在这个应用。同时还要在info.plist中添加相应的
2012-05-21T08:05:00Z
2012-05-21T08:05:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】判断ios中是否安装了某些软件有时候我们想要获取到iphoen手机中安装了那些应用软件,苹果没有提供这方面的api,似乎也是不允许的。如果想要准确的通过程序控制和发现本地安装的应用,目前只能在破解版的ios上开始显示,但是我们可以通过一些其他的途径获取到手机是否安装过某些应用。下面介绍根据应用的app的唯一number,通过[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"321BoomHDFree://"]]这个方法判断手机中是否存在这个应用。同时还要在info.plist中添加相应的 <a href="https://www.cnblogs.com/zhulin/archive/2012/05/21/2511758.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/05/05/2484868.html
mac下制作iphone铃声 - 冷愤僧
普通方法:windows下的方法mac下制作的普通方法:通过itunes1、打开“itunes”,选择菜单栏的“文件”-“将文件添加到资料库” ,选择要做铃声的歌曲,单击“打开” ,歌曲会出现在“资料库”的“音乐”里 2、右击歌曲,选择“显示简介” ,选择“选项”填上“起始时间”和“停止时间”(在40秒以内),-“确定” 3、右击歌曲,选择“创建ACC版本” ,出现同样文件名,但时长在40秒以内的文件 4、右击新创建的歌曲,选择“show in finder”,把“m4a”格式改成“m4r”,在跳出的窗口选择“是”即可。检查:在“itunes”菜单栏“编辑”里找到“偏好设置”打开 在“常规”-
2012-05-05T08:51:00Z
2012-05-05T08:51:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】普通方法:windows下的方法mac下制作的普通方法:通过itunes1、打开“itunes”,选择菜单栏的“文件”-“将文件添加到资料库” ,选择要做铃声的歌曲,单击“打开” ,歌曲会出现在“资料库”的“音乐”里 2、右击歌曲,选择“显示简介” ,选择“选项”填上“起始时间”和“停止时间”(在40秒以内),-“确定” 3、右击歌曲,选择“创建ACC版本” ,出现同样文件名,但时长在40秒以内的文件 4、右击新创建的歌曲,选择“show in finder”,把“m4a”格式改成“m4r”,在跳出的窗口选择“是”即可。检查:在“itunes”菜单栏“编辑”里找到“偏好设置”打开 在“常规”- <a href="https://www.cnblogs.com/zhulin/archive/2012/05/05/2484868.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/05/03/2480962.html
SAX与DOM - 冷愤僧
在解析xml时(如浏览器解析html标签),主要存在两种方式:SAX模式和DOM模式SAX (Simple API for XML)和DOM (Document Object Model)是当前两个主要的XML API,几乎所有商用的xml解析器都同时实现了这两个接口。因此如果你的程序使用了SAX或者DOM APIs,那么你的程序对xml解析器是透明。SAXDOM依序读入文件并产生相对应事件,可以处理任何大小的XML文件。在内存中建立文件树,不适于处理大型的XML文件。只能对文件按顺序剖析一遍,不支持对文件的随意存取可以随意存取文件树的任何部分,没有次数限制只能读取XML文件内容,而不能修改可
2012-05-03T09:33:00Z
2012-05-03T09:33:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】在解析xml时(如浏览器解析html标签),主要存在两种方式:SAX模式和DOM模式SAX (Simple API for XML)和DOM (Document Object Model)是当前两个主要的XML API,几乎所有商用的xml解析器都同时实现了这两个接口。因此如果你的程序使用了SAX或者DOM APIs,那么你的程序对xml解析器是透明。SAXDOM依序读入文件并产生相对应事件,可以处理任何大小的XML文件。在内存中建立文件树,不适于处理大型的XML文件。只能对文件按顺序剖析一遍,不支持对文件的随意存取可以随意存取文件树的任何部分,没有次数限制只能读取XML文件内容,而不能修改可 <a href="https://www.cnblogs.com/zhulin/archive/2012/05/03/2480962.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/04/20/2460768.html
偶然崩溃的原因(不是每次都会奔溃,不过奔溃的频率也不低) - 冷愤僧
最大的原因就是多线程的问题。如:我在一个项目中,一个列表页面初始化完,然后开一个子线程去加载数据,数据加载完后,在返回主线程刷新列表。这里就有可能崩溃。因为初始化列表结束后,会初次加载列表;而此时子线程更改了数据;初次加载列表使用的数据就有可能引起冲突从而崩溃。
2012-04-20T15:35:00Z
2012-04-20T15:35:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】最大的原因就是多线程的问题。如:我在一个项目中,一个列表页面初始化完,然后开一个子线程去加载数据,数据加载完后,在返回主线程刷新列表。这里就有可能崩溃。因为初始化列表结束后,会初次加载列表;而此时子线程更改了数据;初次加载列表使用的数据就有可能引起冲突从而崩溃。 <a href="https://www.cnblogs.com/zhulin/archive/2012/04/20/2460768.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhulin/archive/2012/04/12/2444372.html
APNS相关 - 冷愤僧
一、远程消息推送APNS全流程英文博文:Programming Apple Push Notification Services中文翻译:http://blog.csdn.net/kmyhy/article/details/6688370另一篇比较好的博文(介绍了服务端相关的工作):http://blog.csdn.net/zaitianaoxiang/article/details/6890252[翻译自这里——https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/Remote
2012-04-12T09:37:00Z
2012-04-12T09:37:00Z
冷愤僧
https://www.cnblogs.com/zhulin/
【摘要】一、远程消息推送APNS全流程英文博文:Programming Apple Push Notification Services中文翻译:http://blog.csdn.net/kmyhy/article/details/6688370另一篇比较好的博文(介绍了服务端相关的工作):http://blog.csdn.net/zaitianaoxiang/article/details/6890252[翻译自这里——https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/Remote <a href="https://www.cnblogs.com/zhulin/archive/2012/04/12/2444372.html" target="_blank">阅读全文</a>