摘要:Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。 NSDate+Category.h 代码: NSDate+Category.m 代码:
阅读全文
摘要:Cocoa中谓词(Predicate)提供了一个通用的查询方式处理数据,可以获取和指定数据的过滤形式,Cocoa实际开发中可以是使用NSPredicate及其父类NSComparisonPredicate和NSCompoundPredicate.其风格类似于SQL查询语言和正则表达式的混合体,提供了
阅读全文
摘要:自定义提示框,3秒钟后自动消失。如上图显示效果。 提示框加载代码: BIDNoteView.h 代码: BIDNoteView.m 实现代码:
阅读全文
摘要:在开发过程中,可能会遇到各种不同的场景需要等待加载成功后才能显示数据。以下是自定义的一个动画加载view效果。 在UIViewController的中加载等到效果,如下 BIDActivityNote.m 代码实现效果:
阅读全文
摘要:AFNetworking是一个用于iOS、macOS、watchOS和tvOS的功能强大的网络库。它构建在基础URL加载系统之上,扩展了强大的高级网络抽象,并将其构建为Cocoa。它有一个模块化的架构,设计良好,具有强大功能的api 使用 CocoaPods 引入 创建一个下载任务 创建一个上传任务
阅读全文
摘要:锁的用法在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题: 方法一,@synchronized(id anObject),(最简单的方法)会自动对参数对象加锁,保证临界区内的代码线程安全 方法二,NSLockNSLock对象实现了NSLocking protocol,包含几个方法:l
阅读全文
摘要:简介 在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中。 如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod install命令安装自己的框架该怎么做呢?下面,我就教大家一步一步的将自己的pods发布到CocoaPod
阅读全文
摘要:越来越多公司,开始了组件化,你还要等到什么时候...... 说到开发模式,我们最熟知的开发模式 MVC 或者最近比较热门的MVVM。但是我今天说的组件化的开发,其实MVC不是一类的。它其实是····· 在实际工作中,尤其是参与过比较大的项目,同时,参与开发的成员比较多的情况下,随着时间的不停的开发,
阅读全文
摘要:一、核心动画概念 -导入QuartzCore.framework框架 1⃣ 开发步骤1.初始化一个动画对象(CAAnimation)并且设置一些动画相关属性 2.CALayer中很多属性都可以通过CAAnimation实现动画效果,包括:opacity、position、transform、boun
阅读全文
摘要:翻转的动画 旋转动画 偏移动画 翻页动画 缩放动画 取反的动画效果是根据当前的动画取他的相反的动画
阅读全文
摘要:介绍 Runloop是一种事件监听循环,可以理解成一个while死循环,监听到事件就起来,没有就休息。 Runloop可以在不同模式下进行切换,iOS有五种模式,其中UIInitializationRunLoopModel应用程序启动时会使用,启动完成后将不再使用;GSEventReceiveRun
阅读全文
摘要:黑板模式的意图 黑板模式(Blackboard Design Pattern)是观察者模式的一个扩展,知名度并不高,但是我们使用的范围却非常广。黑板模式的意图如下: 允许消息的读写同时进行,广泛地交互消息。 简单地说,黑板模式允许多个消息读写者同时存在,消息的生产者和消费者完全分开。这就像一个黑板,
阅读全文
摘要:查找功能是数据处理的一个基本功能。数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下。我们假定查找的数据唯一存在,数组中没有重复的数据存在。 (1)顺序查找(普通的数据查找) 设想有一个1M的数据,我们如何在里面找到我们想要的那个数据。此时数据本身没
阅读全文
摘要:什么是观察者模式 概念:一个对象状态改变,通知正在对他进行观察的对象,这些对象根据各自要求做出相应的改变。 图解:操作对象向被观察者对象投送消息,使得被观察者的状态得以改变,在此之前已经有观察者向被观察对象注册,订阅它的广播,现在被观察对象将自己状态发生改变的消息广播出来,观察者接收到消息各自做出应
阅读全文
摘要:本地/推送通知为不同的需要而设计。本地通知对于iPhone,iPad或iPod来说是本地的。而推送通知——来自于设备外部。它们来自远程服务器——也叫做远程通知——推送给设备上的应用程序(使用APNs)同时可以查看消息或下载数据。 APNS: 苹果推送通知服务 “Apple Push Notifica
阅读全文
摘要:一、BLOCK 循环引用 一般表现为,某个类将block作为自己的属性变量,然后该类在block的方法体里面又使用了该类本身。构成循环引用。 // 定义 block 的时候,会对外部变量做一次 copy,强引用, self自身为强引用。 解决方案如下: 二、计时器NSTimer循环引用 主要是因为从
阅读全文
摘要:GCD提供的一些操作队列的方法 dispatch_set_target_queue 系统的Global Queue是可以指定优先级的,那我们如何给自己创建的队列执行优先级呢? 这里我们就可以用到dispatch_set_target_queue这个方法: dispatch_queue_t seria
阅读全文
摘要:iOS操作系统4层结构,如下表 1、Cocoa Touch是可触摸层,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。 包括Address Book UI Framework、Event Kit UI Framework、G
阅读全文
摘要:类型转换通常是指变量,从一种类型转换成另外一种类型。例如将一个long类型转换成int类型,变量转换通常 用下面的方式: 在Objective-C中,我们通常使用CGFloat来做浮点运算,32位是float类型,64位是double类型,通常转换方式 如下操作: 上面代码编译执行后的结果: 这里说
阅读全文