<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[爱技术....爱生活！]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Jason_chen13</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Jason_chen13]]></copyright><item><title><![CDATA[通过GitHub创建HTML个人博客]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/79451999</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/79451999</guid><author>Jason_chen13</author><pubDate>Mon, 05 Mar 2018 22:21:58 +0800</pubDate><description><![CDATA[转自:https://www.jianshu.com/p/1cc0e3ecf6ef





1.要登录你个人的GitHub，地址：https://github.com/








2.如下图所示点击Your profile








3.接着看图先点击 Repositiries,然后店家New创建一个新的项目。





]]></description><category></category></item><item><title><![CDATA[IOS-Quartz2D & CALayer & CAShapeLayer]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/78492636</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/78492636</guid><author>Jason_chen13</author><pubDate>Thu, 09 Nov 2017 18:32:25 +0800</pubDate><description><![CDATA[转自:http://www.jianshu.com/p/91b0cb25d4cb

内容都是来自别人的帖子，自己学习用的，做一个简单的汇总。需要查看原帖的，请看帖子底部的参考文章部分。

1.Quartz2D
提起iOS中的绘图控件，必然会想到Quartz2D。Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统。Quartz2D的API来自于CoreGraphics框架，数据类型]]></description><category></category></item><item><title><![CDATA[iOS绘图—— UIBezierPath 和 Core Graphics]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/78492224</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/78492224</guid><author>Jason_chen13</author><pubDate>Thu, 09 Nov 2017 17:43:26 +0800</pubDate><description><![CDATA[转自：http://www.jianshu.com/p/8e6e960eea7d


前言


iOS系统本身提供了两套绘图的框架，即UIBezierPath 和 Core Graphics。而前者所属UIKit，其实是对Core Graphics框架关于path的进一步封装，所以使用起来比较简单。但是毕竟Core Graphics更接近底层，所以它更加强大。

UIBezierP]]></description><category></category></item><item><title><![CDATA[微信JS-SDK 接口]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/77651337</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/77651337</guid><author>Jason_chen13</author><pubDate>Mon, 28 Aug 2017 17:32:18 +0800</pubDate><description><![CDATA[http://203.195.235.76/jssdk/#menu-voice]]></description><category></category></item><item><title><![CDATA[Swift_访问控制(open>public>fileprivate>insternal>private)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/77531122</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/77531122</guid><author>Jason_chen13</author><pubDate>Thu, 24 Aug 2017 16:04:33 +0800</pubDate><description><![CDATA[ViewController.swift


//基类
//不加 private 私有修饰符，默认class类是公开的
class Test: UIViewController {
    
    
    
    //1、private 私有，只能在当前类访问
    private var  private_value:Int?
    private func private_fu]]></description><category></category></item><item><title><![CDATA[Swift_泛型(inout、泛型函数<TypeName>..)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/77483374</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/77483374</guid><author>Jason_chen13</author><pubDate>Tue, 22 Aug 2017 17:51:35 +0800</pubDate><description><![CDATA[/*!3、泛型类型*/
//给一个结构体声明泛型类型
struct structType {
    
    var array:[TypeName] = [TypeName]()
    var dic = [String:TypeName]()
    
    //数组增加、删
    mutating func appenArray(_ some:TypeName) {
        ]]></description><category></category></item><item><title><![CDATA[Swift_协议、代理(protocol、delegate可选@objc optional与必需、协议扩展、is as? as!检查协议)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/77451366</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/77451366</guid><author>Jason_chen13</author><pubDate>Mon, 21 Aug 2017 16:28:28 +0800</pubDate><description><![CDATA[ProtocolClass2.swift

import UIKit

//定义协议
protocol ProClassDelegate {
    //代理函数
    func test(name:String,type:Int)
    func test2()
}

class ProtocolClass2: NSObject {
    
    //声明类的代理属性变量名]]></description><category></category></item><item><title><![CDATA[Swift_扩展(extension)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/77374450</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/77374450</guid><author>Jason_chen13</author><pubDate>Fri, 18 Aug 2017 17:35:29 +0800</pubDate><description><![CDATA[//1、扩展 Double 类型
extension Double{
    
    var km:Double{return self * 10 }
    var m:Double{return self }
    var cm:Double{return self/10 }
    
}




extension Double{
    
    var dm:Double{retur]]></description><category></category></item><item><title><![CDATA[Swift_错误处理 do--try]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/77194834</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/77194834</guid><author>Jason_chen13</author><pubDate>Tue, 15 Aug 2017 15:51:28 +0800</pubDate><description><![CDATA[enum ErrorEnum:Error {
    case emptySubValue
    case lenghtError
}

struct Item {
    let a:Int?
    let b:Double?
}




class ViewController: UIViewController {

    
    
    
    override func vi]]></description><category></category></item><item><title><![CDATA[Swift_ARC自动引用计数(强引用和弱引用)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76882207</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76882207</guid><author>Jason_chen13</author><pubDate>Tue, 08 Aug 2017 10:33:57 +0800</pubDate><description><![CDATA[Jason类里面为 weak 弱引用  ROUSI类(可以避免循环强引用)
class Jason {
    var name:String?
    init(name:String) {
        print("Jason 实例化")
        self.name = name
    }
    weak var rousi:ROUSI?
    
    deinit {
]]></description><category></category></item><item><title><![CDATA[Swift_Block]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76854110</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76854110</guid><author>Jason_chen13</author><pubDate>Mon, 07 Aug 2017 17:30:37 +0800</pubDate><description><![CDATA[import UIKit


//1无入参，无返回值
typealias funcBlock1 = ()->()
//2返回String
typealias funcBlock2 = (_ a:Int,_ b:Int)->()
//3
typealias funcBlock3 = (Int,Int) -> (String) -> ()
//4
typealias funcBlock4 = (Int]]></description><category></category></item><item><title><![CDATA[Swift_构造过程(指定构造器、convenience便利构造器、可失败构造器 init?(...))]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76827946</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76827946</guid><author>Jason_chen13</author><pubDate>Mon, 07 Aug 2017 11:39:16 +0800</pubDate><description><![CDATA[class Iland {
    var fish : Double
    init(setFish fish2:Double) {
        fish = 11.3
    }
}


struct Hotal {
    var waiter:Double
    init(waiter2:Double) {
        waiter = waiter2
    }
}



/]]></description><category></category></item><item><title><![CDATA[Swift_修饰符(final、override、discardableResult、mutating、lazy、inout.....)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76618887</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76618887</guid><author>Jason_chen13</author><pubDate>Thu, 03 Aug 2017 14:25:18 +0800</pubDate><description><![CDATA[final
class finalSub: finalClass {
    
    //无法重写基类 定义了 final 的属性和函数
}

//加到class前，无法被继承
final class unDo{
    
}]]></description><category></category></item><item><title><![CDATA[Swift_继承]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76618619</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76618619</guid><author>Jason_chen13</author><pubDate>Thu, 03 Aug 2017 14:07:22 +0800</pubDate><description><![CDATA[//1基类
class Father {
    
    var pen = 0.0
    func read() {
        
        print("父类的新闻")
    }
}


//2子类
class Sun_M: Father {
    
    var sunPen = 0
    override func read() {
        
        ]]></description><category></category></item><item><title><![CDATA[iOS8自定义输入法教程：如何创建第三方输入法]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76604411</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76604411</guid><author>Jason_chen13</author><pubDate>Thu, 03 Aug 2017 09:33:32 +0800</pubDate><description><![CDATA[转自:http://www.cocoachina.com/ios/20140922/9706.html




iOS8带来了很多很酷的功能，其中一个就是增加第三方输入法作为应用程序扩展。我们应当重视这个时刻，因为应用程序扩展开辟了一个全新的应用程序种类以及付费操作。凭借着在应用商店中数百万的应用程序，开发者和用户将迎来全新的一天。

 

在本帖中，我将向您展示如何为您的应用程]]></description><category></category></item><item><title><![CDATA[Swift_方法func(在类、枚举、结构体中的声明和使用 mutating func初始化值可变)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76574077</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76574077</guid><author>Jason_chen13</author><pubDate>Wed, 02 Aug 2017 11:57:06 +0800</pubDate><description><![CDATA[import UIKit


//1结构体内方法
struct MyStruct {
    
    var a = 0 , b = 0
    //实例化的时候，实参是不可改变，如果确实需要改的话加 mutating
    mutating func changeby(justA:Int,justB:Int) {
        
        a += justA
        b +]]></description><category></category></item><item><title><![CDATA[Swift_类和结构体(Class、struct、两个类引用类型判断 === 等价....)]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/76195261</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/76195261</guid><author>Jason_chen13</author><pubDate>Thu, 27 Jul 2017 15:14:16 +0800</pubDate><description><![CDATA[ModelClass.swift

import UIKit

struct ModelStruct {
    var a = 0
    var b = 3
    import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLo]]></description><category></category></item><item><title><![CDATA[使用socket（AsyncSocket、GCDAsyncSocket）进行文件的断点上传操作]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/75551932</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/75551932</guid><author>Jason_chen13</author><pubDate>Thu, 20 Jul 2017 16:53:05 +0800</pubDate><description><![CDATA[转自:http://blog.youkuaiyun.com/potato512/article/details/53432559


https://github.com/potato512/SYDemo_SYSocket


通常使用网络进行文件的断点续传时，都是文件的断点下载，很少有文件的断点上传的例子。现在通过socket方式做了一个文件的断点上传。socket使用了AsyncSocket，]]></description><category></category></item><item><title><![CDATA[Swift_枚举]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/75125791</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/75125791</guid><author>Jason_chen13</author><pubDate>Fri, 14 Jul 2017 17:00:01 +0800</pubDate><description><![CDATA[//初始类型
enum test {
    case fef
    case sdf
}


//关联值
enum test2 {
    case a(Int,Float,Bool,Int)
    case b(String)
}


//原始值
enum test31:Character {
    case a = "r"
    case b = "\n"
    case c = ]]></description><category></category></item><item><title><![CDATA[Swfit_闭包]]></title><link>https://blog.youkuaiyun.com/Jason_chen13/article/details/75099980</link><guid>https://blog.youkuaiyun.com/Jason_chen13/article/details/75099980</guid><author>Jason_chen13</author><pubDate>Fri, 14 Jul 2017 11:10:15 +0800</pubDate><description><![CDATA[func closeBlock() {
        //sorted 参数必须是字符串
        let names = ["Cat", "Apple", "Egg", "Block", "Dog"]
        //倒序
        var reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool i]]></description><category></category></item></channel></rss>