上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 42 下一页
摘要: 1、在ARC环境下: instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型。 2、在MRC环境下: instancetype和id一样,不做具体类型检查。 id 可以作为方法参数传递, intancetype 不能。 id 可以去接受对象, inst 阅读全文
posted @ 2016-12-07 09:57 FMDN 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 1 基本用途 可以用来声明一大堆方法(不能声明成员变量) 只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明 只要父类遵守了某个协议,就相当于子类也遵守了 2 格式 协议的编写 3 关键字 协议中有2个关键字可以控制方法是否要实现(默认是 @required ),在大多数情况下,用途在 阅读全文
posted @ 2016-12-06 20:43 FMDN 阅读(653) 评论(0) 推荐(0) 编辑
摘要: block是代码块,其本质和变量类似。不同的是代码块存储的数据是一个函数体。使用Block,就可以像其他标准函数一样,传入参数,并得到返回值。 可以把Block当做Objective-C的匿名函数,Block允许开发者在两个对象之间将任意的语句当做数据进行传递,block的实现具有封闭性(closu 阅读全文
posted @ 2016-12-05 16:53 FMDN 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 总结一下关于UI布局及屏幕适配的一些实战技巧,尤其使用纯代码,会对提升效率及代码易于维护等方面有明显帮助,这里提到的没有使用任何Xib, 如果不是在外包公司,也推荐大家多使用甚至完全使用纯代码布局UI,优缺点下面会说明,本文布局使用masonry。 提纲: 1. 关于xib/storyboard 与 阅读全文
posted @ 2016-12-05 14:44 FMDN 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 1、什么时候在 block 中不需要使用 weakSelf 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: 那么请问:什么时候在 block 里面用 self,不需要使用 weak self? 答案如下: 当 阅读全文
posted @ 2016-12-05 14:02 FMDN 阅读(290) 评论(0) 推荐(0) 编辑
摘要: Today extensions (今日扩展): Today extension就是我们上面所说的通知中心扩展,因为这个扩展会显示在我们通知中心的 “今天” 这个标签下面。这个扩展的作用很简单,能够让用户更快速方便的看到app最及时的信息,比如中国移动的流量显示,我不用再每次打开移动的app去查看流 阅读全文
posted @ 2016-11-30 17:06 FMDN 阅读(1354) 评论(0) 推荐(2) 编辑
摘要: 症状 iOS 10 之后,陆陆续续地有用户联系我们,说新机第一次安装、第一次启动的时候,app 首屏一片空白,完全没数据。kill 掉重新打开就好了。 一开始以为是用户网络情况不好,但随着越来越多的用户报告这个问题,我意识到这并不是偶然情况。但是并非所有用户都如此。 而且卸载掉之后,如果再装,也不会 阅读全文
posted @ 2016-11-30 08:34 FMDN 阅读(10028) 评论(0) 推荐(0) 编辑
摘要: 在日常开发过程中,为了提升程序运行效率,以及用户体验,我们经常使用多线程。在使用多线程的过程中,难免会遇到资源竞争问题。我们采用锁的机制来确保线程安全。 线程安全 当一个线程访问数据的时候,其他的线程不能对其进行访问,直到该线程访问完毕。即,同一时刻,对同一个数据操作的线程只有一个。只有确保了这样, 阅读全文
posted @ 2016-11-30 08:31 FMDN 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 先看两行代码:1. 2. 相信大家对上面的两行代码都不会陌生 上一行:UIColor原本是没有读取十六进制颜色值的方法的 下一行:UITableView原本是没有header属性的 那么,How it happened? Because of the Category! Category(类别)简介 阅读全文
posted @ 2016-11-29 16:42 FMDN 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 发布开源库到CocoaPods的时候。对CocoaPods重新学习了一下。 1.CocoaPods的日常使用 2.创建CocoaPods的私有库 3.创建CocoaPods的开源库 一. CocoaPods的介绍 什么是CocoaPods?CocoaPods是一个负责管理iOS项目中第三方开源库的工 阅读全文
posted @ 2016-11-28 09:05 FMDN 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 经常用UC看到首页有这么一个动画,就仿造写了一下。 实现分析 1.画曲线的动画 这个一眼看去就想到用贝塞尔曲线画,来看贝塞尔曲线方法,给出两个定点,和一个控制点就可以画。 CGContextAddQuadCurveToPoint(context, 控制点x, 控制点y, 目标点x, 目标点y); 于 阅读全文
posted @ 2016-11-28 08:56 FMDN 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 最近看到的Slow App Startup Times里提到: The dynamic loader finds and reads the dependent dynamic libraries (dylibs) used by the App. Each library can itself h 阅读全文
posted @ 2016-11-28 08:52 FMDN 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 通过GNUstep的Foundation来尝试探索下NSOperation,NSOperationQueue 示例程序 写一个简单的程序 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loadi 阅读全文
posted @ 2016-11-28 08:40 FMDN 阅读(560) 评论(0) 推荐(0) 编辑
摘要: iOS网络层设计 1、网络层和业务层的对接设计 使用哪种交互模式来和业务层对接 : 使用Delegate为主,目的是为了(1)减少代码的分散度(2)减少业务层和网络层的耦合,网络层对于业务层应该是抽象的,隐藏了实现细节的 (3)只采用一种是限制了灵活性,方便进行维护 在网络层不要滥用block :( 阅读全文
posted @ 2016-11-25 16:01 FMDN 阅读(2052) 评论(0) 推荐(0) 编辑
摘要: 最近项目里有个需求和导航栏的样式定制有关,深入之后发现之前理解的一些概念有些模糊,刚好趁着这次机会全面整理了一下。 从 iOS7 开始,苹果采用了大量的扁平化和毛玻璃风格,刚升级到 iOS7 之后会发现界面的布局多多少少有一些偏差(当然现在新建的项目没有这方面困扰,不需要经历6到7的适配),适配过程 阅读全文
posted @ 2016-11-25 08:02 FMDN 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然而由于iOS设备的限制,有时搞好性能是一件难事。开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响。 这正是我写下这篇文章的原因。这篇文章以一个方便查看的 阅读全文
posted @ 2016-11-24 16:18 FMDN 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 1.内存空间的划分: 我们知道,一个进程占用的内存空间,包含5种不同的数据区:(1)BSS段:通常是存放未初始化的全局变量;(2)数据段:通常是存放已初始化的全局变量。(3)代码段:通常是存放程序执行代码。(4)堆:通常是用于存放进程运行中被动态分配的内存段 , OC对象(所有继承自NSObject 阅读全文
posted @ 2016-11-24 15:22 FMDN 阅读(653) 评论(0) 推荐(0) 编辑
摘要: ios 中的构造方法 1.什么是构造方法? 初始化对象的方法. 默认情况下,在 OC 当中创建1个对象分为两部分(new 做的事): +alloc:分配内存空间 -init :初始化对象 初始化对象的方法. 默认情况下,在 OC 当中创建1个对象分为两部分(new 做的事): +alloc:分配内存 阅读全文
posted @ 2016-11-23 19:08 FMDN 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 一. 成员变量 (一)变量的作用域主要分为四种: (1)@public (公开的)在有对象的前提下,任何地方都可以直接访问。 (2)@protected (受保护的)只能在当前类和子类的对象方法中访问 (3)@private (私有的)只能在当前类的对象方法中才能直接访问 (4)@package ( 阅读全文
posted @ 2016-11-23 18:54 FMDN 阅读(329) 评论(0) 推荐(0) 编辑
摘要: iOS中提供了2中推送通知1.本地推送通知(Local Notification)2.远程推送通知(Remote Notification) 推送的作用:可以让不在前台运行的app,告知客户app内部发生的事情.(QQ消息推送,微信消息推送等等) 推送通知的呈现效果:1.在屏幕顶部显示的一条横幅2. 阅读全文
posted @ 2016-11-23 17:06 FMDN 阅读(360) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 42 下一页