<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Step_Next的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Step_Next</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Step_Next]]></copyright><item><title><![CDATA[单例设计模式]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52861572</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52861572</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 17:32:57 +0800</pubDate><description><![CDATA[/**
* 
 定义：单例模式，也叫单子模式，是一种常用的软件设计模式。在应用这个模式时，单例对象的类必须保证只有一个实例存在，而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 
 要点： 1、某个类只能有一个实例 
 2、它必须自行创建这个实例 
 3、它必须向整个系统提供这个实例优点：1、实例控制：Singleton会阻止其他对象实例化其自己的Singleton 
 对象的副本，从而确]]></description><category></category></item><item><title><![CDATA[NSKeyedArchiver 归档和回档]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52861526</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52861526</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 17:29:17 +0800</pubDate><description><![CDATA[NSKeyedArchiver 归档和回档如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型，可以直接用NSKeyedArchiver进行归档和恢复 
  不是所有的对象都可以直接用这种方法进行归档，只有遵守了NSCoding协议的对象才可以 
NSCoding协议有2个方法： 
    encodeWithCoder: 
每次归档对象时，都会]]></description><category></category></item><item><title><![CDATA[nil,NULL,NSNull,Nil区别]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52861514</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52861514</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 17:28:00 +0800</pubDate><description><![CDATA[1.nil指向一个对象的指针为空 在objc.h中的定义如下所示:#ifndef nil
# if __has_feature(cxx_nullptr)
#  define nil nullptr
# else
#  define nil __DARWIN_NULL
# endif
#endif在Objective-C中用于id类型的对象
NSString *name = nil;
NSURL]]></description><category></category></item><item><title><![CDATA[iOS内存警告]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52861467</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52861467</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 17:24:44 +0800</pubDate><description><![CDATA[清空内存缓存,取消操作IOS内存警告处理 
IPhone下每个app可用的内存是被限制的，如果一个app使用的内存超过20M，则系统会向该app发送Memory Warning消息。收到此消息后，app必须正确处理，否则可能出错或者出现内存泄露。app收到Memory Warning后会调用：UIApplication::didReceiveMemoryWarning -> UIApplicatio]]></description><category></category></item><item><title><![CDATA[ios中修改字体]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52861307</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52861307</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 17:10:50 +0800</pubDate><description><![CDATA[1.使用系统默认提供的字体系统默认提供的字体主要是指UIFont中提供的字体，其使用代码为：fontLabel.font = [UIFont fontWithName:@”Marion” size:17];字体[UIFont familyNames];如上所诉通过字体详细字典对字体属性进行设置 
/* 
 UIFontDescriptorFamilyAttribute：设置字体家族名 
 UIFon]]></description><category></category></item><item><title><![CDATA[文件查看之UIDocumentInteractionController和UIWebView.WKWebView]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52861286</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52861286</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 17:09:17 +0800</pubDate><description><![CDATA[iOS中的沙盒可以让平台更加的安全，这也是沙盒给用户带来的最主要好处。不过由于沙盒的严格限制，导致程序之间共享数据比较麻烦。一般在程序间共享文档可以通过UIDocumentInteractionController（该类经常被开发者忽略） 
UIDocumentInteractionController在iOS 3.2中就已经存在了，使用起来非常灵活，功能也比较强大。它除了支持同设备上app之间的文]]></description><category></category></item><item><title><![CDATA[WKWebView和UIWebView]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52861073</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52861073</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 16:56:22 +0800</pubDate><description><![CDATA[UIWebView自iOS2就有，WKWebView从iOS8才有，毫无疑问WKWebView将逐步取代笨重的UIWebView。通过简单的测试即可发现UIWebView占用过多内存，且内存峰值更是夸张。WKWebView网页加载速度也有提升，但是并不像内存那样提升那么多基本属性：网页加载进度、网页标题，这些网页的最最基本的属性，终于齐了。前进后退手势：在UIWebView实现过这个功能的我，深知此]]></description><category></category></item><item><title><![CDATA[百度地图开发API]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/52860999</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/52860999</guid><author>Step_Next</author><pubDate>Wed, 19 Oct 2016 16:50:38 +0800</pubDate><description><![CDATA[注意点: 
1.由于系统原因，iOS不允许使用第三方定位，因此地图SDK中的定位方法，本质上是对原生定位的二次封装。通过封装，开发者可更便捷的使用。此外，地图SDK中还提供了相应的定位图层（支持定位三态效果），帮助开发者显示当前位置信息。(百度地图坐标系统 
WGS84坐标系：即地球坐标系，国际上通用的坐标系。 
GCJ02坐标系：即火星坐标系，WGS84坐标系经加密后的坐标系。 
BD09坐标系：]]></description><category></category></item><item><title><![CDATA[在既有类中使用关联对象存放自定义数据]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/51954342</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/51954342</guid><author>Step_Next</author><pubDate>Tue, 19 Jul 2016 11:33:18 +0800</pubDate><description><![CDATA[**在既有类中使用关联对象存放自定义数据** 
    有时需要在对象中存放相关信息。这时我们通常会从对象所属的类中继承一个子类，然后改用这个子类对象。然而并非所有情况下都能这么做，有时候类的实例可能是由某种机制所创建的，而开发者无法令这种机制创建出自己所写的子类实例。Objective-C中有一项强大的特性可以解决此问题，这就是“关联对象”（Associated Object）。 
    下列方]]></description><category></category></item><item><title><![CDATA[线程间通信]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50706197</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50706197</guid><author>Step_Next</author><pubDate>Sat, 20 Feb 2016 21:20:56 +0800</pubDate><description><![CDATA[1.performSelector- (void)perform {
  NSString *urlString =
      @"http://pic13.nipic.com/20110415/1347158_132411659346_2.jpg";
  //下载操作放到后台执行
  [self performSelectorInBackground:@selector(loadImage:)]]></description><category></category></item><item><title><![CDATA[NSOperation使用]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50706038</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50706038</guid><author>Step_Next</author><pubDate>Sat, 20 Feb 2016 20:40:16 +0800</pubDate><description><![CDATA[NSOperation1.简单说明NSOperation的作⽤：配合使用NSOperation和NSOperationQueue也能实现多线程编程NSOperation和NSOperationQueue实现多线程的具体步骤：（1）先将需要执行的操作封装到一个NSOperation对象中（2）然后将NSOperation对象添加到NSOperationQueue中（3）系统会⾃动将NSOperatio]]></description><category></category></item><item><title><![CDATA[GCD 的使用]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50705892</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50705892</guid><author>Step_Next</author><pubDate>Sat, 20 Feb 2016 19:58:43 +0800</pubDate><description><![CDATA[GCD : 纯 C 语言的 APIGCD 核心 
1.任务:执行什么操作 
    同步：永远只在当前线程上 从上往下，依次执行 执行，这个就叫做同步 
    异步：永远不在当前的线程上执行，它跑到别的线程上面去执行。 
        总结：同步方法 永远在当前线程上执行，所以没有开辟线程的能力。 
             异步方法，因为要在别的线程上去执行，所以它具有开辟线程的能力。]]></description><category></category></item><item><title><![CDATA[Swift 中的闭包循环引用]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50679703</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50679703</guid><author>Step_Next</author><pubDate>Wed, 17 Feb 2016 12:42:49 +0800</pubDate><description><![CDATA[/* 
闭包  与 OC 中的 Block 类似，闭包主要用于异步操作执行完成后的代码回调，网络访问结果以参数的形式传递给调用方 
 闭包类似于 OC 中的 Block 
    * 预先定义好的代码 
    * 在需要时执行 
    * 可以当作参数传递 
    * 可以有返回值 
    * 包含 self 时需要注意循环引用1.提前准备好的一段可以执行的代码2.可以当做参数传递 
3.在]]></description><category></category></item><item><title><![CDATA[Swift 单例与懒加载]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50679686</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50679686</guid><author>Step_Next</author><pubDate>Wed, 17 Feb 2016 12:37:38 +0800</pubDate><description><![CDATA[//懒加载就是在闭包中创建对象,并且只加载一次
    lazy var btn : UIButton = { //() -> UIButton in        let button = UIButton(frame: CGRect(x: 0, y: 0, width: 20, height: 20))        return button
    } ()
    //懒加载数据]]></description><category></category></item><item><title><![CDATA[二维码扫描]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50679679</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50679679</guid><author>Step_Next</author><pubDate>Wed, 17 Feb 2016 12:35:42 +0800</pubDate><description><![CDATA[// 先要导入 AVFoundation.framework#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
//1.有个素材
@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>//2.输入设备  采集摄像头捕捉到信息
@propert]]></description><category></category></item><item><title><![CDATA[绘图的五种方式]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50679672</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50679672</guid><author>Step_Next</author><pubDate>Wed, 17 Feb 2016 12:34:03 +0800</pubDate><description><![CDATA[- (void)test5{    //第五种 OC类型
    UIBezierPath *path = [UIBezierPath bezierPath];    [path moveToPoint:CGPointMake(10, 10)];
    [path addLineToPoint:CGPointMake(200, 200)];
    [path addLineToPoint:CGP]]></description><category></category></item><item><title><![CDATA[AFNetWorking 封装]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50679654</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50679654</guid><author>Step_Next</author><pubDate>Wed, 17 Feb 2016 12:24:54 +0800</pubDate><description><![CDATA[1.Swiftimport AFNetworkinglet blogDomain = "com.baidu.data.error"//swift 中的枚举
enum HTTPType : String {    case POST = "POST"
    case GET = "GET"}
//创建网络分类,隔离 AFN框架与 自身代码class Networktools: AFHTTPSessi]]></description><category></category></item><item><title><![CDATA[GCD]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50270117</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50270117</guid><author>Step_Next</author><pubDate>Fri, 11 Dec 2015 23:26:36 +0800</pubDate><description><![CDATA[GCD (Grand Central Dispatch) 
 纯C语言,函数强大GCD的优势 
GCD是苹果公司为多核的并行运算提出的解决方案 
GCD会自动利用更多的CPU内核（比如双核、四核） 
GCD会自动管理线程的生命周期（创建线程、调度任务、销毁线程） 
程序员只需要告诉GCD想要执行什么任务，不需要编写任何线程管理代码 
GCD特点: 性能最好，代码更精简,与系统衔接更好(基于XNU内核]]></description><category></category></item><item><title><![CDATA[Block的循环引用]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50270039</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50270039</guid><author>Step_Next</author><pubDate>Fri, 11 Dec 2015 23:13:21 +0800</pubDate><description><![CDATA[产生的原因是在 block中使用self ,此时 block由于 copy的原因,对 self 是强引用,并且将 block作为 self 的成员变量的闭包,而且 self 的改成员变量中又对 block 闭包强引用,所以该成员变量间接地对 self也是强引用,而 self 对于成员变量的强引用,造成了循环引用.二者不能都释放,会造成内存泄露 
例子://创建  NetworkTools
#impo]]></description><category></category></item><item><title><![CDATA[消息循环NSRunLoop]]></title><link>https://blog.youkuaiyun.com/Step_Next/article/details/50269939</link><guid>https://blog.youkuaiyun.com/Step_Next/article/details/50269939</guid><author>Step_Next</author><pubDate>Fri, 11 Dec 2015 22:56:26 +0800</pubDate><description><![CDATA[NSRunLoop (消息循环) 
RunLoop就是消息循环,每一个线程内部都有一个消息循环。 
只有主线程的消息循环默认开启,子线程的消息循环默认不开启。NSRunLoop的作用 
1,保证程序不退出 
2.负责处理输入事件 
3.如果没有事件发生.会让程序进入休眠状态事件源 : input Sources 输入源 
         Timer Source 定时源消息循环使用 
1.创建输入]]></description><category></category></item></channel></rss>