随笔分类 - iOS
摘要:1.项目需求 主界面能左右滚动,还能上下滚动,点击按钮跳转界面。 2.分析界面 点击按钮跳转界面可以自定义UITabBarCotroller来实现; 左右滚动,可以利用scrollView来实现 或 UICollectionView; 上下滚动,用tableView可以实现。 3.选择实现方案 方案
阅读全文
摘要:更新说明 这是一篇发过的文章,最近我进行了更新,增加了 Charles 4 的介绍,反向代理功能和设置外部代理,并且介绍了如何解决与FQ软件的冲突。 与此同时,正值 Charles 推出 4.0 版本,数码荔枝在做 Charles 优惠 30 元的特价活动(限时:2016 年 8 月 8 日 - 1
阅读全文
摘要:在iOS的图片加载框架中,SDWebImage可谓是占据大半壁江山。它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率,让我们更加专注于业务逻辑实现。 SDWebImage
阅读全文
摘要:这篇文章由一个简单的问题引出: 有两个字典,分别存有 100 条数据和 10000 条数据,如果用一个不存在的 key 去查找数据,在哪个字典中速度更快? 有些计算机常识的读者都会立刻回答: “一样快,底层都用了哈希表,查找的时间复杂度为 O(1)”。然而实际情况真的是这样么? 答案是否定的,存在少
阅读全文
摘要:Block 是 Objective-C 中笔者最喜欢的特性,它为 Objective-C 这门语言提供了强大的函数式编程能力,而最近苹果推出的很多新的 API 都已经开始原生的支持 block 语法,可见它在 Objective-C 中变得越来越重要。 这篇文章并不会详细介绍 block 在内存中到
阅读全文
摘要:绝大多数 iOS 开发者在学习 runtime 时都阅读过 runtime.h 文件中的这段代码: struct objc_class { Class isa OBJC_ISA_AVAILABILITY; #if !__OBJC2__ Class super_class OBJC2_UNAVAILA
阅读全文
摘要:以前只是看了很多博客,这次打算看一下源码,并记录下来。想到哪里就读到哪里,写到哪里。读的代码版本是:objc runtime 680,可以从这里下载 https://github.com/RetVal/objc-runtime 对象与 isa 指针 开始阅读源码,首先 打开 objc-private
阅读全文
摘要:性能对 iOS 应用的开发尤其重要,如果你的应用反应很慢,失望的用户会把他们的失望写满App Store的评论。然而由于iOS设备的限制,有时搞好性能是一件难事。开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响。 这篇文章总结了开发中常用到的一些性能优化点 1:应用启动时间
阅读全文
摘要:WebKit是iOS8之后引入的专门负责处理网页视图的框架,其比UIWebView更加强大,性能也更优。 引言 在iOS8之前,在应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过URL或者HTML文件来加载网页视图,功能十分有限,只能作为辅助嵌入原生应用程序中。虽然UIWebVie
阅读全文
摘要:在 iOS 7 出來一個背景模糊的效果, Apple 官方的 sample code 則有提供怎麼使用 vImage, Quartz 來實作這個效果。接著在 iOS 8 出來之後,則提供了 UIVisualEffectView 可以疊加在繼承 UIView 的 class 的 objects ,除了
阅读全文
摘要:在上一篇文章中介绍了 FBRetainCycleDetector 的基本工作原理,这一篇文章中我们开始分析它是如何从每一个对象中获得它持有的强指针的。 如果没有看第一篇文章这里还是最好看一下,了解一下 FBRetainCycleDetector的工作原理,如何在 iOS 中解决循环引用的问题。 ht
阅读全文
摘要:稍有常识的人都知道在 iOS 开发时,我们经常会遇到循环引用的问题,比如两个强指针相互引用,但是这种简单的情况作为稍有经验的开发者都会轻松地查找出来。 但是遇到下面这样的情况,如果只看其实现代码,也很难仅仅凭借肉眼上的观察以及简单的推理就能分析出其中存在的循环引用问题,更何况真实情况往往比这复杂的多
阅读全文
摘要:Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省、进行方法调剂、为类增加属性、修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 Objecitve-C 层的一切类、方法以及属性。 真正绝对意义上的动态语言或者静态语言是不存在的。
阅读全文
摘要:前言 去model化是一种框架设计上的做法,其中的model并不是指架构中的model层,套用Casa大神博客中的原文就是: model化就是使用数据对象,去model化就是不使用数据对象。 常见的去model化做法是使用字典保存数据信息,然后提供一个reformer负责将这些字典数据转换成View
阅读全文
摘要:CoreData使用相关的技术点已经讲差不多了,我所掌握的也就这么多了.... 在本篇文章中主要讲CoreData的多线程,其中会包括并发队列类型、线程安全等技术点。我对多线程的理解可能不是太透彻,文章中出现的问题还请各位指出。在之后公司项目使用CoreData的过程中,我会将其中遇到的多线程相关的
阅读全文
摘要:认识CoreData-初识CoreData 认识CoreData-基础使用 认识CoreData-使用进阶 在之前的文章中,已经讲了很多关于CoreData使用相关的知识点。这篇文章中主要讲两个方面,NSFetchedResultsController和版本迁移。 文章题目中虽然有“高级”两个字,其
阅读全文
摘要:iOS开发之时键盘通知之前处理这种问题,总是在触发输入框编辑事件键盘弹出的时候,将当前的View整体向上移动,结束编辑又整体向下移,耗时耗力效率低。 在网上看了使用键盘通知的方法很是方便,所以写了个demo供初学者参考! 1.在ViewController.m文件声明 #import "ViewCo
阅读全文
摘要:iPhone / iOS SDK 最酷的特性之一就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme 用于从浏览器或其他应用中启动本应用。 注册自定义 URL Scheme 注册自定义 URL Scheme 的第一步是创建 URL Scheme — 在 Xcode Pro
阅读全文
摘要:一、NSDate 1.NSDate对象用来表示一个具体的时间点。 2.NSDate是一个类簇,我们所使用的NSDate对象,都是NSDate的私有子类的实体。 3.NSDate存储的是GMT时间,使用的时候会根据 当前应用 指定的 时区 进行时间上的增减,以供计算或显示。 //iOS时间 //当前时
阅读全文
摘要:MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。 CBStoreHouseRefreshControl - 一个效果很酷炫的下拉刷新控件。 BreakOutToRefresh - 一个下拉
阅读全文

浙公网安备 33010602011771号