Magic Studio

专心做有逼格的APP!

随笔分类 -  iOS

实现自定义延迟加载的滚动视图
摘要:数据量大,单个数据处理耗时的情况下,一个延迟加载的自定义视图就必不可少了。我们希望这样的视图可以在需要用到某个数据源的时候再去装载这个数据并处理之。而不是视图已启动就把全部的数据都加载上去。如果全部加载再加上服务器请求(如果有的话)的时间绝对超过用户忍耐的极限。随之应用必然遭弃!UITableView也有一定的复用机制。大概的机理是:每次到一个Cell出现在可视区域的时候,它会从已经用过的Cell中取出来一个, 如果还没有用过的Cell(也就是说这个返回值是空)就创建一个。当一个Cell划出可视范围的时候就把这个Cell放到备用数组中供以后使用。如下代码中就有所体现: 1 - (UITable 阅读全文

posted @ 2013-08-14 16:03 Mr 布鲁斯 阅读(751) 评论(0) 推荐(0)

在UIWebView中添加自定义编辑菜单
摘要:如何在UIWebView中添加自定义的编辑菜单困扰了很久。没想到意外的简单!现在很多的内容提供类应用中,长按内容页会选中按的单词并且显示一个编辑菜单。如图:独乐乐不如众乐乐。一篇好文章是需要大家一起欣赏的。一篇八卦文也是需要大家一起八卦的。TabBar的一个分享按钮毕竟没法把这篇文章的亮点附带上。所以让用户通过长按,然后可以选择需要分享的内容。最后再在弹出的菜单中选择“分享”去分享给好友。这样用户可以把打动他,的一句话分享出去。用户选择的这句话不一定是文章的什么重点啊,中心啊(额,想到小时候语文课上的总结文章中心思想什么的了)。但是肯定是能引起用户或者用户的这个圈子注意的一句话。这个选择权一定 阅读全文

posted @ 2013-08-08 15:36 Mr 布鲁斯 阅读(2071) 评论(0) 推荐(0)

NS_ENUM & NS_OPTIONS
摘要:When everything is an object, nothing is.So, there are a few ways you could parse that, but for the purposes of this article, this is all to say: sometimes it's nice to be able to drop down to the C layer of things.Yes--that non-objective part of our favorite Smalltalk-inspired hybrid language, 阅读全文

posted @ 2013-07-05 17:00 Mr 布鲁斯 阅读(486) 评论(0) 推荐(0)

ObjC解码汉字网页乱码问题
摘要:入股读取的中文网页编码集是gb2312用UTF8的编码得到的结果只能是nil,换用ASCII得到的结果是中文编乱码。只能这样:NSURL *url = [NSURL URLWithString:urlStr];NSData *data = [NSData dataWithContentsOfURL:url]; NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); NSString *retStr = [[NSString alloc] ini... 阅读全文

posted @ 2013-05-28 19:27 Mr 布鲁斯 阅读(211) 评论(0) 推荐(0)

为什么要用-all_load&-ObjC
摘要:为了减少工作量复用部分代码,于是乎我们开始选择重构整个项目,把可以公用的代码放在一起打包成一个静态库子项目在其他的项目中使用。介绍这部分内容的文章在网上很多,各位可以G一下细看。但是每次在加入静态库的时候都会在other linker flag里设置两个值:-all_load和-ObjC。很奇怪为什么要这样做,而且有的时候什么都不设置也不影响静态库的使用。所有使用了这个静态库的项目都没有出现任何的问题,即使不设置那两个flag值。于是拜求G大神,终于找到了结果。关于-ObjC的:引用This flag causes the linker to load every object file in 阅读全文

posted @ 2013-05-02 18:02 Mr 布鲁斯 阅读(961) 评论(3) 推荐(1)

iPhone的Push(推送通知)功能原理浅析[转]
摘要:转自:http://xiaolife.com/wordpress/an-introduce-to-iphone-push/第一部分:Push原理(以下绝大多数内容参考自、图片来自iPhone OS Reference Library)机制简介Push 的工作机制可以简单的概括为下图图中,Provider是指某个iPhone软件的Push服务器。APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,下文统一使用该缩写。因 此,整个过程可以分为三个阶段,下面用大家常用的聊天客户端BeejiveIM来说明。(BeejiveIM是一款支持多账户 阅读全文

posted @ 2012-10-06 17:54 Mr 布鲁斯 阅读(254) 评论(0) 推荐(0)

ARC Best Practices[转]
摘要:ARC Best PracticesSome optional backstory: The relevant documentation is:Transitioning to ARC Release Notes Mike Ash also has a ARC great writeup in one of hisFriday Q&As. The deep technical documentation lives at theCLANG siteof the LLVM project.The advice here assumes you are using iOS 5,... 阅读全文

posted @ 2012-08-30 22:45 Mr 布鲁斯 阅读(409) 评论(0) 推荐(0)

Finding iPhone Memory Leaks: A “Leaks” Tool Tutorial[转]
摘要:Finding iPhone Memory Leaks: A “Leaks” Tool TutorialbyOWEN GOSSon12. FEB, 2009inRESOURCES,TOOLS,TUTORIALSThere are plenty of different places to get a mobile application designed. The problem is that they’re quite expensive. You might be able to figure out how to create your own, but it will probabl 阅读全文

posted @ 2012-08-29 10:29 Mr 布鲁斯 阅读(252) 评论(0) 推荐(0)

iOS应用审核的通关秘籍【转】
摘要:iOS应用审核的通关秘籍磨刀不误砍柴工。作为手机应用开发者,你需要向应用商店提交应用审核,迅速通过审核可以让你抢占先机。对苹果iOS应用开发者来说尤其如此。苹果应用商店的审核近乎吹毛求疵,下面这些清单可以让你知道苹果会在哪些地方找茬。基本要点首先,你的应用程序:不能导致手机故障(比如崩溃或屏幕问题)长时间/过度使用之后反应仍然很快应用内的所有价格信息中不能用固定值代替可变变量不要使用任何SDK里面的私人API不要使用任何SDK文档里面没有列出的功能不要提及用户设备上不存在的硬件功能如果需要网络连接,在没有网络的情况下要告知用户不要(过度)模仿任何本地应用程序不要(过度)山寨某个本地应用的功能运 阅读全文

posted @ 2012-08-27 10:43 Mr 布鲁斯 阅读(251) 评论(0) 推荐(0)

拥抱Core Graphics吧!
摘要:Core Graphics用于处理本地2D向量渲染和图片渲染。其中满是名称相近,让人郁闷的C接口。对于在iOS上编程有一段时间的人来说有别的方法也会尽量避免使用这些C函数。毕竟直接用xCode已有控件的话,只要拖一拖,然后少许的代码就可以做出某些效果,何必自找苦吃?!但是Core Graphics有一个很大的优点:快! ps,我不是说要重复找轮子。绘制在drawRect:方法中进行当一个View需要绘制的时候,drawRect:方法会被调用。在这个方法中Core Graphics就会发挥作用,你指定的区域会被重新绘制。但是你没法直接绘制UIView,而是继承UIView并自己实现drawRec 阅读全文

posted @ 2012-07-20 16:14 Mr 布鲁斯 阅读(3667) 评论(1) 推荐(3)

伤不起的imageNamed方法
摘要:前段时间开发的时候总是遇到莫名其妙的崩溃。最后终于找出来是什么鬼原因: 1[UIImageimageNamed:]; 缓存了过多的大图片导致内存用尽,最后崩溃。最后解决这个问题的方法如下: 首先只缓存减小了大小的图片,然后需要用到大图片时从直接读取不缓存。 不过很明显,这个方法不够好。几天以后应用还是无声无息的崩溃了。经过多次的检查,排除了其他代码 的内存泄露等问题。再看console,里面一堆系统内存警告,然后退出了后台进程知道应用挂了。 所以,很明显+imageNamed这个方法简直太诡异了。即使什么清空缓存什么的估计也不管用。 这并不是什么难题,如果你干脆放弃缓存的话,苹果的例... 阅读全文

posted @ 2012-07-17 20:31 Mr 布鲁斯 阅读(1830) 评论(1) 推荐(0)

Pull to Refresh 拖动刷新之我的实现
摘要:项目中需要用到pull to refresh这个功能, 从网上找了下找到了这个:https://github.com/leah/PullToRefresh。 这个代码对我来说有一个很大的问题。其中拖动刷新的实现是放在TableViewControllerL里的,我要的放在 自定义UIView中的实现。经过一番改造终于实现了出来。 阅读全文

posted @ 2012-07-15 20:36 Mr 布鲁斯 阅读(1609) 评论(0) 推荐(0)

UIImagePickerController在iPhone和iPad中用法的一点不同[转]
摘要:我们知道,在iPhone中获取照片库常用的方法如下:UIImagePickerController *m_imagePicker = [[UIImagePickerController alloc] init]; if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary]) { m_imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; m_imagePicker.... 阅读全文

posted @ 2012-05-30 17:33 Mr 布鲁斯 阅读(259) 评论(0) 推荐(0)

Objective-C SQLiteHelper
摘要:为毛要用CoreData,SQLite不是挺好吗?如果你要用这些代码,请无比仔细测试。欢迎各种拍砖、探讨!你可以从这里下载 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16... 阅读全文

posted @ 2012-03-02 18:42 Mr 布鲁斯 阅读(400) 评论(1) 推荐(0)

LLDB TO GDB COMMAND MAP LLDB TO GDB COMMAND MAP[转]
摘要:LLDB TO GDB COMMAND MAP Below is a table of LLDB commands with the GDB counterparts. The built in GDB compatability aliases in GDB are also listed. EXECUTION COMMANDS LLDB GDB Launch a process no arguments. (lldb) process launch (lldb) run (lldb) r (gdb) run (gdb) r Launch a p... 阅读全文

posted @ 2012-02-19 00:07 Mr 布鲁斯 阅读(816) 评论(0) 推荐(0)

ObjC block入门
摘要:objC的block是基于c语言开发,可以在c,c++和objc中使用。声明和使用一个block:block中会用到一个特殊的操作符^。整个block体都放在{}中。例如:1intmultiplier=7;2int(^myBlock)(int)=^(intnum){3returnnum*multiplier;4};借着这张E文的图,我们可以看到定义一个block是多么的简单。从左到右依次是:myBlock要返回的类型,这里是int。myBlock就是我们block的名字,而^操作符表明此变量是个block。之后则是这个block需要输入的参数的类型。赋值号后面的是这个block需要的参数,这里 阅读全文

posted @ 2011-12-14 16:04 Mr 布鲁斯 阅读(2550) 评论(0) 推荐(0)

Xcode4 单元测试快速入门[转]
摘要:这是一篇xcode单元测试入门的文章。有空了给各位翻出来方便大家看。This is a post by iOS Tutorial Team member Unit testing is great because it makes your life easier. Easier to deliver high quality code, and easier to make changes without fear of breaking something! But what might not be so easy is getting started if you’r... 阅读全文

posted @ 2011-11-30 11:36 Mr 布鲁斯 阅读(662) 评论(0) 推荐(0)

NSString的一点tips
摘要:When to release a NSString in iPhone up vote 7 down vote favorite 7 share [fb] share [tw] I have the following method -(NSMutableArray *) getPaises { NSMutableArray * paises; paises = [[NSMutableArray all... 阅读全文

posted @ 2011-10-21 00:08 Mr 布鲁斯 阅读(316) 评论(0) 推荐(0)

obj 格式化输出 [转]
摘要:在使用诸如NSLog, [NSString stringWithFormat:]之类的函数时,都是基于c/c++风格的字符串格式化工作的.本来c/c++就没怎么用过,到iphone开发开发时掺合上NS系的对象,格式化输出更是一头的乱.看了一下Programming Guide for Cocoa的文档,还是有比较详尽的说明的,整理出来备查.格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf s 阅读全文

posted @ 2011-10-14 13:08 Mr 布鲁斯 阅读(499) 评论(0) 推荐(0)

导航